Find unused Objective-C imports. gitHub sudo gem install fui Find Unused Classes...
能实现玩野动态展示的内容和静态的修饰分离和对于不同的网页实现不同的修饰。...使用之前需要先从官网 http://wiki.sitemesh.org/wiki/display/sitemesh/Home 下载:decorators.xml 放到web 项目的web-inf 下面...----> defaultdir: 指需要装饰页面的文件夹路径 page:此装饰器的路径:相对的或者是绝对的。...excludes:次装饰器需要装饰的页面或者是路径。如果是绝对的则defaultdir 无效。 pattern:http请求的路径。...标签 那么接下来就可以自定义自己的内容了
技能大全:http://www.cnblogs.com/dunitian/p/4822808.html#skill 完整Demo:https://github....
vue3中引入element-plus的Icon最近使用element-plus开发项目,发现element-plus废弃了Font Icon 使用了 SVG Icon。...安装#使用包管理器#选择一个你喜欢的包管理器NPM$ npm install @element-plus/icons-vueYarn$ yarn add @element-plus/icons-vuepnpm...$ pnpm install @element-plus/icons-vue全局引用**在main里面导入引入icon**import \* as Icons from '@element-plus/icons-vue...Icons[key])})按需引用**(House )名字引用是你要使用图标的名字,导入是首字母大写**import { House } from '@element-plus/icons-vue'// 在vue
我们都知道,在日常开发中我们经常遇到在钉钉群或者在业务群中会出现各种各样的慢业务的接口,比如某个接口在钉钉群疯狂出现,然后就有某些领导艾特你来解决这个慢业务问题,今天阿粉就来说说如何通过各种手段来定位慢业务问题...SQL导致的慢业务 SQL导致的慢业务,这个是七成以上的开发都会遇到的问题。因为有百分之70左右的慢业务都是因为自己的慢SQL引起的。 那么我们该怎么去定位这个慢SQL呢?...:表示慢查询日志存放的位置 explain查看分析SQL执行计划 当我们去定位自己表中增加的索引有没有生效的时候,我们使用的一半都是 explain 关键字,通过关键字给我们返回的内容,我们就能判断我们写的...derived:在 from 的列表中包含的子查询被标记成 derived(派生表)。...,在存储引擎层进行数据过滤,而不是在服务层过滤,利用索引现有的数据减少回表的数据 这个关键字是非常需要大家掌握的,因为能非常准确的反映出你写的 SQL 语句到底有没有命中索引,如果你的 SQL 都没有命中索引的话
公司目前在做一个任务宝的项目,主要是用公众号举行一些活动,通过公众号推送活动的海报,海报上面附有公众号的二维码,当用户扫码进入公众号以后,提示用户需要完成一定数量的分享即可免费赠送相关礼品等等,活动的主要目的是为了涨粉...其中在生成海报时,为了方便后台人员操作,二维码和头像与海报的合成需要做到拖拽定位,效果如下: ?...两个图片的拖拽实现代码如下: // 图片拖拽事件 function dragImg(id) { // 要拖动的图片 var obj = document.getElementById(id...); // 图片的父容器 var objBox = $(obj).parent(); // 点击时鼠标相对于拖拽图片右上角的距离 var disX = 0; var...disY = downEvent.clientY - top - offsetTop; }else if(id=="QRCode"){ // 由于二维码的图片初始位置是在左下角
使用lombok,可以使用一个注解来代替getter等方法的编写。...org.projectlombok lombok 1.18.12 在实体类上加上注解...按钮 lombok常用的注解 @Getter/@Setter 注解在类上,为所有非静态变量生产get和set方法 @ToString 注解在pojo类上面,为类生成toString方法,如果要在toString...中排除一个变量,可以在该变量上面加上注解ToString.exclude,如果要在toString中打印出非静态变量,在非静态变量上增加@ToString.Include,如果要改变打印出的变量名称,在变量上加注解...@AllArgsConstructor将生成一个有所有变量的构造函数,其中的staticName属性指定生产一个静态构造函数的名称,代码如下: @RequiredArgsConstructor(staticName
TypeScript在node项目中的实践 TypeScript可以理解为是JavaScript的一个超集,也就是说涵盖了所有JavaScript的功能,并在之上有着自己独特的语法。...而这一点在TS中得到了很好的改善,任何一个变量的引用,都需要指定自己的类型,而你下边在代码中可以用什么,支持什么方法,都需要在上边进行定义: ?...Express版本的例子,针对这个稍作修饰,应用在了一个 koa 项目中。...typescript,全局安装TS,编译所使用的tsc命令在这里 npm i -g nodemon,全局安装nodemon,在tsc编译后自动刷新服务器程序 官方手册 官方Express示例 以项目中使用的一些核心依赖...在src下,主要代码分为了如下结构(依据自己项目的实际情况进行增删): # folder desc 1 controllers 用于处理接口请求,原apps、routes文件夹。
工程化的项目中code review不可或缺,但linter检查器更能发现并解决潜在的语法错误,不合理的语法使用,并能保持代码风格一致。...下面的workflow解决了eslint在部署阶段的自动检测与修复 install yarn add eslint yorkie lint-staged -D configure eslint //...env: { browser: true }, globals: { android: false }, // ... } yorkie 解决git hooks的生成...,hooks位于/.git/hooks/,下面的pre-commit的则为/.git/hooks/pre-commit,为bash脚本 // package.json { "gitHooks": {..."pre-commit": "lint-staged" } } lint-staged 专为linter设计,任务流的配置形式,类似于&&作用 类似于下面的逻辑if [$file in
摘要:本文所讲述的内容,为ElasticSearch(以下简称ES)全文搜索引擎在实际大数据项目的应用;ES的底层是开源库 Lucene。...但是,你没法直接用 Lucene,必须自己写代码去调用它的接口。...ES 是 Lucene 的封装,Java开发,提供了 REST API 的操作接口,开箱即用,是目前全文搜索的首选; 本文的使用项目为基于Spring Boot 的快速开发环境搭建的项目框架,使用Spring...4、Field(字段)--相当于表中的COLUMN 5、在一个关系型数据库里面,schema定义了表、每个表的字段,还有表和字段之间的关系。...而在本文的项目中,舆情监测部分,搜索功能将是该模块的核心功能;包括条件检索,中文分词,全文搜索等功能,而BBOSS对于该部分功能的实现,提供了极大的便利; 三、ES环境搭建和在项目中的应用 1、
TypeScript在react项目中的实践 前段时间有写过一个TypeScript在node项目中的实践。 在里边有解释了为什么要使用TS,以及在Node中的一个项目结构是怎样的。...但是那仅仅是一个纯接口项目,碰巧赶上近期的另一个项目重构也由我来主持,经过上次的实践以后,尝到了TS所带来的甜头,毫不犹豫的选择用TS+React来重构这个项目。...) dll是一个很早之前的套路了,大概需要修改这么几处: 创建一个单独的webpack文件,用于生成dll文件 在普通的webpack文件中进行引用生成的dll文件 // dll.js { entry...有一点要注意的,如果最终需要上传这些静态资源,记得连带着verdors.dll.js一并上传 在本地开发时,vendors文件并不会自动注入到html模版中去,所以我们有用到了另一个插件,add-asset-html-webpack-plugin...关于ESLint的配置文件.eslintrc,在本项目中存在两份。
swagger 在 egg 项目中的最佳实践 Write By CS逍遥剑仙 我的主页: csxiaoyao.com GitHub: github.com/csxiaoyaojianxian Email...swagger 在 java 界广为使用,其他语言同样可以方便地集成使用。本文以基于 node.js 的企业级应用框架 egg.js 为例,集成 swagger 以根据函数注释自动生成接口文档。...由于本案例比较简单,为了避免项目多余的配置,此处使用普通的搭建方式,可以参考上面的链接,搭建的项目目录结构如下: egg-example ├── app │ ├── contract...2.2 egg-swagger-doc 安装 参考 npm 项目: https://www.npmjs.com/package/egg-swagger-doc 在 egg 项目中安装 swagger:...:controller 和 contract,在完成插件引入后,如果不修改默认配置,应用启动后,会自动扫描 app/controller 和 app/contract 下的文件。
“ 在昨天推送的文章中,我们能够明显的看到访问Redis存储的数据,比访问MySQL中存储的数据要快很多,但是我们也强调了Redis的一些缺点,那么在实际的项目中,我们如何合理的使用Redis呢?”...这里用我的小程序做个例子: 在我的小程序中,首页的提示栏就属于热点数据,不管你喜不喜欢,打开小程序你都会看到这些数据: 1.小程序更新的版本, 2.小程序更新的文章, 3.小程序更新的题库。...我想说到这里大家应该就明白来,缓存如何去用,通常情况下,我们只需要考虑上面两点就行,在一些特定的情况下我们需要根据实际的业务场景进行实际的分析。...这里我们也可以知道在开头说的第二个问题:数据库更新数据,缓存数据怎么处理。...存在问题:维护复杂,建议只在海量数据的情况下使用。
Node.js 不仅可以单独运行,还可以以库的方式被使用,本文介绍下如何把 Node.js 嵌入到自己项目中。首先第一步下载 Node.js 源码,然后根据 Node.js 的文档进行编译安装。...这样我们就可以拿到 Node.js 提供的头文件和库文件了。接下来根据官方的 demo 写一个测试程序。...LoadEnvironment 最后会执行我们传入的字符串代码。这段代码中,前面是 Node.js 提供的 demo,后面一句是我加的,test.js 里简单输出 hello world。...cool,我们已经实现了把 Node.js 嵌入到我们的项目。下面具体来看一下涉及到的一些逻辑。从 LoadEnvironment 看起。...StartExecutionCallbackInfo& info) -> MaybeLocal { // 一会分析 }); } LoadEnvironment 进一步调了另一个
1、注意事项:在编写C#DLL类库时,最好不要出现相同的命名空间,否则在C++中调用可能会出现编译错误。...2、将C#的源码生成的“dll”文件复制到C++项目中的Debug目录下 3、将C++项目属性设置为公共语言运行时支持 4、在项目中导入dll文件和引用命名空间 #using "...../debug/xxx.dll" using namespace xxxx; 5、实例化C#对象:CL ^cl = gcnew CL(); 6、调用C#带out string[] 参数的方法:intPowerOff...String^>(0); int result = cl->PowerOff(FrameAry); printf("上行报文:%s", FrameAry[0]); 7、调用带int类型和string类型的方法...int r = cl->InitSetting(1, 3000, 200, "193.168.18.11", 10004, 20000); 8、调用带int[] 、Single[]类型参数的方法:boolSetHarmonic
蚁后负责命令大家搬食物,先搬这块再搬那块,蚁兵负责搬,大家排成长队互相传递食物;最后,蚂蚁将大于自身体重几千甚至几万倍的食物分解搬运到了另一个地方。 1.2....下图最能体现出大总管的主导作用,项目管理把任务分配给Jone、Alex、Tom或者Marco,成员只要完成自己的任务就好。 ? 2.2.2....成员主导型 这里看到成员主导型,也许有人就觉得项目管理就没事了。错!项目管理依然要把项目拆分成各个小任务,然后,然后就让大家自己去“抢”任务了。 “抢”任务,为什么要抢?...前提是成员自己认为能够胜任这个任务,二是要建立在多劳多得或者是绩效考核之上的,如果没有这些,就没有“抢”的意义了。 以下是成员主导型的看板展示: ? 2.3....结束语 以上是我在项目中尝试过的多种管理方法,有些也是脑子中成型的想法但是还未实现;如果大家有兴趣实践,请把遇到的问题共享出来共同探讨,谢谢。
3、svg-inline-loader 官方文档:https://webpack.js.org/loaders/svg-inline-loader/ svg-inline-loader 会根据配置项去除...webpack 项目中引入 SVGO: 安装: npm install svgo svgo-loader --save-dev webpack 配置: { test: /\.svg$/,...在使用 svgo-loader 后,我们看下打包大小,确实是有很大幅度的压缩。 ? 2. SVG 雪碧图 当项目需要加载多个 SVG 文件时,上述加载方式就需要优化了。...第一种方法 第一种方法是把所有的图标通过 元素定义在 SVG 代码中,嵌入在 元素中的图标是不会被直接显示的。...return res.text(); }).then(data => { document.getElementById('svg-sprite').innerHTML = data; }); 这样的方式是我们自己手动去请求的
在公司的项目中, 经常会遇到一些公共的内容, 多个项目中间通用的, 不可能每次都将整个代码复制一遍, 遇到这种情况有很多不同的解决方案, 一般来说, 项目是通过 git 来管理的, 巧了, git 也同样支持子模块...问题 以上对于子模块的使用, 网上有各种教程, 在此不再赘述. 而我在使用中遇到的问题是这样的: 公司的代码库分为测试环境与生产环境两个分支: dev, master....此方法是我自己想到的, 是否可行还有待验证 子模块冲突 既然子模块是根据commit id进行管理的, 那么当不同的人提交了不同的commit id上来的时候, 就很有可能存在冲突....很明显, 这个冲突是子项目的冲突, 所以要进入子项目解决. 主要的思想当然还是解决分支之间的冲突....同理, 当你不方便操作master分支的时候, 将master合并到你自己的分支, 然后解决冲突, 是一样的. 至此, 基本解决了子模块的不同环境问题, 后面遇到问题再说吧.
大多数同学苦于刷了很多算法却在项目中很少应用,难以加深印象,而且总有同学问着有啥用啊有啥用啊?为了刷题而刷题,带着需求场景去应用算法是最为直接的学习方式。...在大多数算法中解法排名前三的绝对是暴力法,回溯法(含递归),迭代法(含分治法)。 回溯算法Backtracking 尝试搜索答案,类似枚举,一层层向下递归,直到路径结束。与DSF算法极度相似。...枚举出商户到客户的全排列,计算出每个路线的距离,这一次与上一次的距离比较,哪个路线最小保留。 疑问点: 有人会问了,咦?你这第一个方法不是已经算出最优路线了吗?为什么还要枚举全部可能去计算?...在地图上我们计算距离为实际空间的直线距离,如果实际线路中可能存在逆行,限行等实际路线冲突,所以有必要枚举全部可能。...,第三次数字为除去已经被选择的全部数字,终止条件为满足排列组合等于当前数组的长度。
一、使用slf4j 使用门面模式的日志框架,有利于维护和各个类的日志处理方式统一 实现方式统一使用: Logback框架 二、打日志的正确方式 1、什么时候应该打日志 当你遇到问题的时候,只能通过debug...功能来确定问题,你应该考虑打日志,良好的系统,是可以通过日志进行问题定为的。...当你碰到if…else 或者 switch这样的分支时,要在分支的首行打印日志,用来确定进入了哪个分支 经常以功能为核心进行开发,你应该在提交代码前,可以确定通过日志可以看到整个流程 2、基本格式 必须使用参数化信息的方式...有容错机制的时候出现的错误情 找不到配置文件,但是系统能自动创建配置文件 即将接近临界值的时候,例如: 缓存池占用达到警告线 业务异常的记录,比如: 当接口抛出业务异常时,应该记录此异常 3、INFO...基本概念 系统运行信息 Service方法中对于系统/业务状态的变更 主要逻辑中的分步骤 外部接口部分 客户端请求参数(REST/WS 调用第三方时的调用参数和调用结果 说明 并不是所有的service
领取专属 10元无门槛券
手把手带您无忧上云