程序员必备的6大强大的工具,包含Github最受欢迎的生产力工具!
之前给程序员小伙伴们推荐一些高效率开发工具、平台。比如程序员最爱的编辑器SublimeText,全球最大的源代码管理平台GitHub。今天继续给程序员小伙伴们推荐几款好用的工具:0、数据库管理工具Navicat是数据库管理工具,几乎所有的程序员都在用。它既可以对数据库进行管理,还能视觉化创建SQL语句。1、OhMyZshOhMyZsh毫无疑问是Github上最受欢迎的生产力工具了。提供各种的主题配置,插件机制,以及内置的便捷操作。2、vim不用的coder都不是好coder,这个工具相信大家也非常熟悉,好用到不用介绍。3、SourceCodeProAdobe出品必属精品。利用SourceCodePro阅读代码,简直是赏心悦目的感觉!4、StylifyMe并不是所有的程序员都懂设计,对于设计网页配色,经常是头痛不已。有了StylifyMe,只要拷贝网站,即可分析出网页使用的所有颜色,包括背景颜色、文字颜色、字体、字体大小等样式。对于设计,简直是轻松自如。还有谁敢说程序员
程序员、架构师、技术经理、技术总监和 CTO 都是干什么的?
高级程序员学名工程师。到了这个level,英文名可改叫做engineer或developer。此时你的功力开始增强,这与你平时的积累努力是分不开的,祝贺你~此时的你不仅可以完成任务,开始注重代码的质量,能够写出工业级的代码。你的经验可胜任模块级的系统设计,承担完成较为复杂的技术,能有效的自我管理,有帮助别人快速解决问题(troubleshooting)的能力。此阶段你需要经历到7、8年左右的体验,中间要经历一段深刻自我历练的过程。有时给人致命一击其实是心里的小蟊贼。一般人在5年前后遇到一个门槛,碰到天花板+彷徨期,或者你打心眼里不在喜欢编程,可尝试转为其它角色,如产品经理,售前售后支持等岗位,也不失为好选择。当我们熬过这段儿,就会“山随平野尽,江入大荒流“,渐入佳境矣。高级程序员定义软件功能、做开发计划推进和管理。可以带几个个帮手把产品规划的功能实现,你是团队中的”大手“,遇到难题也是你亲自攻艰克难。所以,一个高级程序员,他的职责很清晰:1、负责产品核心复杂功能的方案设计、编码实现2、负责疑难BUG分析
Python 3 极简教程 之 安装 MySQL、MySQL 数据库连接
安装MySQL下载完成,点击安装:一直继续:注意:安装时会弹出一个提示框,提示框中有临时密码,必须记住,后面会用到,界面上的文字可以复制。我的临时密码为:go_W
数据库 PGP 加密算法、mode、PAD的选择 - PG与Oracle, MySQL的差异(安全性)
背景PostgreSQL,Greenplum的数据加密插件pgcrypto,用于加密数据。其中用于PGP对称加密的函数例子:IntroductionofPGPencryption,usageofrawencryptionfunctionsisdiscouraged.encrypt(databytea,keybytea,typetext)returnsbyteadecrypt(databytea,keybytea,typetext)returnsbyteaencrypt_iv(databytea,keybytea,ivbytea,typetext)returnsbyteadecrypt_iv(databytea,keybytea,ivbytea,typetext)returnsbyteaEncrypt/decryptdatausingtheciphermethodspecifiedbytype.Thesyntaxofthet
SQLserver之视图、存储过程、触发器和游标(有点偏到了方法论)
今天数据库上课学习了三个概念,再加上之前学习的视图和索引,我决定一起做个总结。当然,此次总结只为了理清思路,不涉及具体代码。说到这个先插播个局外话,我觉得老师一句话说得挺好——大学学习的是方法论,这句话算是解答了我一直以来的一个疑惑——大学上了有什么用?大学上的东西都是已经过时的,我之前一直这么理解,以我学的技术为例,不管是大一学习的access数据库,还是之后学习jsp印象比较深刻的表格布局,access数据库无疑企业开发是不会用的,但是我们学习的东西实实在在是真的有用的,不管是当时就觉得有道理的物理模型和逻辑模型打开了对于计算机世界怎么反映现实世界的疑惑,还有之后在企业中也有见到的E-R图、范式等。还记得之前用了好多天使用table表格布局模仿了火狐的首页,但不久后知道table布局早就淘汰了,但是我做的table真的就没有意义吗,或许之前我也曾这么怀疑过,但是现在不了,因为有了这些经历,我再换成div加CSS布局后速度非常快,甚至我学HTML和CSS其他东西也变快了。当然这两个例子还是不太合适的,因为按照这样来我们学习的东西是有限的,那么怎
vue + webpack 前端项目持续发布集成部署
1.jenkins和gitlab的连接处理(通过配置ssh-key可以处理)2.jenkins中构建项目npmrunbuild之后的文件夹权限(配置权限chmod-R777dist)3.ftp和ssh推送方式的区别vue项目build后空白问题1.history:mode的路由配置2.构建后的路径问题配置中常用的linux命令1.压缩文件包tar-czfdist.tar.gz*2.解压文件包tar-xvfdist.tar.gz(指向到制定文件夹-C/workpace)3.推送本地文件到远程服务器sudoscp~/mywork/dist.tar.gzroot@10.0.0.1/www/distnginx配置server{listen80;server_name10.0.0.1;root/www/dist/;location/{proxy_read_timeout600;try_files$uri$uri//index.html;indexindex
SegmentFault 社区访谈 | Aresn:重量级的 iView 作者
上期专访说到,Felix是一个如同空气般存在的人,本期的专访嘉宾恰恰相反,是一个存在感爆棚(绝对不是说体重)的重量级用户,使用过Vue以及其相关UI组件库的小伙伴,对他的名字肯定不陌生,那就是Aresn--iView的作者。下面递️给Aresn,开始本期的专访~Aresn个人Hello,Aresn,和大家打声招呼,介绍下自己吧Hi,大家好,我是Aresn,中文名叫梁灏,91年金牛座。现在在大数据公司TalkingData担任可视化架构师。更多关于我的内容可以阅读这篇文章【2016我的心路历程:从Vue到Webpack到iView】(文章挺长的,还是先看这篇吧)。你还可以通过一个5分钟的小短片,来了解我和我团队正在做的事情,观看短片传送门(这个还是可以先看看的,只有5分钟)清蒸混迹于你的交流群,发现小伙伴都喊你教主,可以说下这个昵称的由来吗?这个嘛,作为一枚非知名技术网红,在SegmentFault开了5场直播,因此得名。
一个行为标准Popup组件(vue), 强大的过度动画支持
支持返回键,可以按浏览器返回按钮关闭popup可以写出小复杂的过度动画,比如磁贴按压效果[在popUpMenu可看到]支持css动画库,比如animation.css,使用的时候自行添加依赖就好了提供了几个比较好的popup组件,calendar,picker,imgViewer行为定义相对标准,这一点比较重要的,前端行为定义犹如算法的输入定义一样,比如触发关闭之后,结束动画未结束之前,popup会拦截输入事件,popup属于不可交互状态拓展比较方便~,之后会补充popup编写的教程~差点忘说了,强大的定位支持,有居中,clickRelative,domRelative,其中domRelative支持25个位置Layer都经过优化了,层次合理~,没有出现压缩层,或者层爆栈的情况采用的是绝对的置顶策略,就是即便在页面内设置fixed+z-index:99999999999;,
Vue 升级小记
写文章登录Vue升级小记回晓6hoursagoVue升级小记最近接手了一个Vue1.0的陈年老项目,需要将其升级到Vue2.0。下面记录一下升级过程:安装迁移工具首先需要安装vue-migration-helperCLI工具:控制台运行命令:npminstall--globalvue-migration-helperCLI工具来帮助项目从Vue1.x迁移到2.x。它扫描文件以查找特定于Vue的代码,并对需要升级的代码提供详细的警告。vue-migration-helper的介绍说明告诉我们它大概能捕获80%的升级帮助信息,而不是全部。所以终端输出的帮助信息并不是完全正确的,在升级时不要盲目copy&paste,还是要根据实际情况去改写。进入当前的项目:运行:vue-migration-helper工具识别出了108个需要升级的点:由于这个古董项目不是用Vue-CLI构建的,为了避免在升级依赖上出错,我直接新起了一个Vue-CLI项目,将老项目中的业务部分进行迁移,这个是最快
javascript 数组与json的混合怪物
众所周知,javascript的变量是可变类型,说变就变。这是优点,有很大的灵活性,但有时一不小心,又会让人因为未反应过来,而导致一些困惑。比方说,有个数组:vararr=['a','b','c'];alert(arr.length);//3arr['a']='A';alert(arr.length);//数组长度没变,还是3alert(arr['a']+","+arr.a);//A,A。说明arr['a']==arr.aalert(arr['a']===arr.a);//true原本arr只是一个单纯的数组,但有赋值语句arr['a']='A'之后,arr变成了一个怪物:数组与json的混合体:["a","b","c",a:"A"]其中a不知为何,并不是数组的元素,数组的长度还是3。arr.forEach(function(a){alert("foreach:"+a);});//分别提示a,b,c由于forEach只遍历数组元素,所以上述语句,arr.a并不能被检视出来。
我来阅读lodash源码——Math(一)
在加减乘除的源码中可以看到这四个函数都引用了一个createMathOpeartion这个函数,然后是这样使用这个函数的://加法constadd=createMathOperation((augend,addend)=>augend+addend,0)//减法constsubtract=createMathOperation((minuend,subtrahend)=>minuend-subtrahend,0)//乘法constmultiply=createMathOperation((multiplier,multiplicand)=>multiplier*multiplicand,1)//除法constdivide=createMathOperation((dividend,divisor)=>dividend/divisor,1)可以发现,它们的实现方式都是一样的,向createMathOperation传递一个函数,这个函数就是原生的加减乘除,
THREE.JS blending与opacity冲突问题
在我们的three.js开发中,肯定很喜欢半透明的风格,并且three.js封装的半透明设置也很方便,只需要将material中的transparent设置为true,然后在(0,1)之间调节个人适用的透明度。但是在实际开发中,纹理坐标深度(即朝向屏幕内部的方向)重叠的情况是不可避免的。尤其是在大型项目中的开发,blending的设置更是深深的和用户体验所联系。three.js封装的blending方法有["NoBlending","NormalBlending","AdditiveBlending","SubtractiveBlending","MultiplyBlending"].参考网址:https://threejs.org/examples/webgl_materials_blending.htmlNoBlending:坐标深度较浅的物体将会遮挡坐标:深度较深的物体,没有纹理融合效果,设置纹理透明度无效NormalBlending:默认选项,效果应该同上,暂未发现什么规律,区别就是设置纹理透明度有效Addit
010.UEditor文档
UEditor的简单使用在JavaWeb阶段和SSM框架阶段,我们的课程设计中都会使用到富文本编辑器,目前流行的编辑器很多KindEditor/CKEditor/UEditor/WangEditor等,这里我们使用的是百度开源的,这里我们使用JSP的版本这部分属于自学内容,请各位同学根据文档完成下面配置过程1.下载UEditor网址:http://ueditor.baidu.com/website/download.html
css实现图片背景填充的正六边形
这里为了得到一个正的六边形,两个矩形旋转的角度必须为-60deg和60deg,以及矩形高宽比必须是Math.sqrt(3):1,原谅我不会打根号3(:3」∠)。那么首先我们得创建三个重叠的矩形: