代码审查

什么是代码审查

  • 程序源代码系统的进行审查 => 找出修正初期未发现的错误,提升代码质量
  • 帮助开发者发现代码缺陷,避免类似问题发生
  • 互相阅读代码,发现代码中的Bug

通俗
就是leader主持下,讲关键代码,大家提建议和意见

好处:

  • 提升代码质量
  • 最重要的是你同团队一起成长,团队技术提升的重要环节

审查规范的坑

  • 没有流程
  • 没有系统
  • 没有任何清单

导致程序员像面试一样面对未知很紧张

代码清单

包含方面

  1. 代码安全性
  2. 性能
  3. 代码注释
  4. 单元测试代码
  5. 代码优化(例如格式化、分类等)

以上是常见需要涵盖的方面,具体的按照公司规定来,这是最重要的一项

好处

  • 有清单程序员介绍关键代码和审查都有数
  • 审查时间节约

代码审查参与者避坑

  1. 应该是日常工作,而不是作为项目的最后工作,最好每天一做,至少一星期一次
  2. 每次审查行数200~400左右
  3. 审查代码的时间不要太长,一个组不超过一小时,每个人大概15分钟就好,不要影响开发效率了
  4. 代码审查中领导不要发火,不要批评,变成一个快乐、互相学习、互相进步的过程。

以上来自视频下TIAN梦的评论


以上是我对下列视频及文章的归纳和总结。
大胖逼逼叨17-程序员避开这4个坑 代码审查快乐又轻松


相关资料
代码审查怎么做?

phpstudy v8.0 的使用

大学时期,接触过 PHP,并且简单的使用过织梦,那时候用的工具是 XAMPP。PHP 忘得也差不多了,这次写 Ajax 例子的时候用到了 PHP,那就写一篇关于 phpstudy 常用操作吧。

WAMP、XAMPP、PHPstudy

WAMP 强烈推荐这款 :WAMP是基于Windows,Apache,MySQL和PHP的开放资源网络开发平台,Windows是微软的操作系统;Apache是最通用的网络服务器;mySQL是带有基于网络管理附加工具的关系数据库;
XAMPP:许多人通过他们自己的经验认识到安装 Apache 服务器是件不容易的事儿。如果您想添加 MySQL、PHP 和 Perl,那就更难了。XAMPP 是一个易于安装且包含 MySQL、PHP 和 Perl 的 Apache 发行版。XAMPP 的确非常容易安装和使用:只需下载,解压缩,启动即可。
PHPstudy:能够随意版本却换。


相关资料
phpstudy 官网
phpstudy v8.0 下载_安装步骤
phpstudy v8.0创建本地站点域名教程
phpstudy v8.0 网站创建与配置
phpstudy v8.0 php mysql多版本共存与切换教程
phpstudy v8.0 数据库管理工具phpadmin使用教程
phpstudy v8.0 FTP服务器设置
phpstudy v8.0 完全卸载图文教程

关于反编译

我最早听说过类似“反编译”的词汇是在汽车、飞机等领域,通过反编译来仿制汽车、飞机等,昨天面试听到面试公司技术骨干提到这个反编译。我觉得很神奇。索性出一篇文章来了解反编译。

反编译

反编译指通过他人软件进行“逆向分析、研究”工作,推导出他人的软件产品所使用的思路、原理、结构、算法、处理过程、运行方式等设计要素,

某种特定情况下可能推导出源码。可以作为自己开发软件时的参考或直接用于自己的软件产品中。

这里我想到了,我在学校期间使用过一款扒网站的工具,跟反编译接近,工具是你输入一个网址然后通过这个网址来扒取网站的。我想大致原理是跟爬虫类似的,只不过爬虫抓取的是网站的数据,它抓取的是文件资源。

微信小程序反编译大致操作步骤,在模拟器中找到微信用微信打开某个小程序,小程序会被下载下来,然后找到下载下来的包,用ES 文件浏览器 把包复制到共享文件夹,然后通过 node 进行反编译,详细请看相关资料。


相关资料
科普:什么是编译与反编译
逆向反编译四大工具利器
知乎 反编译
反编译微信小程序
反编译获取任何微信小程序源码(完)
微信小程序反编译
如何将模拟器内的文件导出到电脑

Ajax 跨域 一起来吧!

Ajax 简介

Ajax读音:[ˈeɪdʒæks]

Ajax 的全程:Asynchronous JavaScript and XML(异步的 JavaScript 和 XML)。
Ajax 不是某种编程语言,是一种在无需重新加载整个页面的情况之下能够更新网页部分的技术。

解决问题

传统的网页(不使用 Ajax 技术的页面),想要更新内容或者提交一个表单,就需要重新载入页面。
使用了 Ajax 技术的页面,通过在后台跟服务器进行少量的数据交互,网页就可以实现异步局部更新。

阅读更多

开发者职业发展漫谈

成为优秀的开发者需要具备怎样的素质?
软件开发者的发展路径是怎样的?
开发者应该养成怎样的好习惯?
如何持续学习,如何管理知识产权?
开发者应该具有哪些软技能?去哪里抱团?如何销售自己?
开发者如何提高沟通技能?
开发者如何提高英语水平?

千万不要只走一种语言
算法:高等数学
数据统计、数据分析

成为优秀的开发者需要具备怎样的素质?

“编程的本质任务就是驾驭计算机科学的极端复杂性。” —— Dijkstra

计算机思维
软件工艺宣言

为产品项目提出自己的想法和见解。

进阶的历程是?
入门
中级
熟练级
技术带头人级

进阶的历程
进阶的历程
技术领导力的养成
软件开发者怎样养成好习惯
软件开发者的好习惯
软件开发者

如何持续学习?如何管理知识资产?
持续学习
持续学习管理知识资产
开发者学习

开发者应该具备哪些软技能?

如何打造自己的品牌?
去哪里抱团?
如何销售自己?

打造自己的品牌
较好的技术网站
社群组织

如何提高沟通水平?
沟通

通用的沟通技能
维度
重要因素
方法和工具
方法和工具
有效管理沟通
有效管理沟通
提高英语水平
推荐的网站
coursera
udacity

推荐书籍《软技能:代码之外的生存指南》。


以上是我对下列视频及文章的归纳和总结。
开发者职业发展漫谈

JSBridge 的原理及使用

JSBridge的原理及使用

主要是给 JavaScript 提供调用 Native 功能的接口,让混合开发中的前端部分可以方便地使用 Native 的功能(例如:地址位置、摄像头)。

而且 JSBridge 的功能不止调用 Native 功能这么简单宽泛。实际上,JSBridge 就像其名称中的Bridge的意义一样,是 Native 和非 Native 之间的桥梁,它的核心是构建 Native 和非 Native 间消息通信的通道,而且这个通信的通道是双向的。

双向通信的通道:
JS 向 Native 发送消息: 调用相关功能、通知 Native 当前 JS 的相关状态等。
Native 向 JS 发送消息: 回溯调用结果、消息推送、通知 JS 当前 Native 的状态等。

H5与Native交互如下图:
H5与Native交互

阅读更多

如何学习一门技术

仅供参考

阶段一:认知了解阶段(第一印象很重要)
1.该技术的概念和方向
2.该技术解决了什么问题
3.同类技术有哪些
4.该技术的主要组成部分
5.该技术为什么出现

阶段二:学习语法,用法
途径进阶
1.视频教程(效率低)
2.快速上手视频
3.入门博客
4.权威书籍,官方文档

阶段三:局部练习,小型实战,搭建环境(记录总结,写博客写博客写博客!!!)

阶段四:上手实际项目或开源项目(先打牢基础)

阶段五:(终极目标)造轮子,撸源码


以上是我对下列视频及文章的归纳和总结。
如何学好技术

40个改变编程技能的小技巧

  1. 将大块代码分解成小函数
  2. 今日事今日毕,如果没毕,就留到明天
  3. YAGNI原则
  4. 不必全知全能,但基础一定要扎实
  5. KISS原则
  6. 别想太多
  7. 被问题/Bug卡住时,walk away!
  8. 学会写测试代码TDD
  9. 先分解问题再开始写代码
  10. 代码不要死记硬背
  11. 学好用好Stack Overflow
  12. 不要「光学不练」
  13. 与小伙伴互相审查代码
  14. Don’t Reinvent The Wheel
  15. 你的代码是最好的文档
  16. 懂得如何搜索
  17. 写代码时要之后维护考虑
  18. 复制粘贴
  19. 不要放弃
  20. 休息、休息再休息
  21. 学习软件设计模式
  22. 使用集成工具
  23. Do code katas
  24. 依赖注入是一个要求
  25. 重构-测试-重构
  26. 及时寻求帮助
  27. Practice makes perfect.
  28. 不必太在意评论
  29. 了解你的开发环境
  30. 复用组件
  31. 考虑相关限制
  32. 不要过早优化或重构
  33. 不要投机取巧
  34. 遵循规定的标准
  35. 用户不是技术人员
  36. 坚持使用Github或bitbucket
  37. 记录所有关键部分
  38. 风格保持一致
  39. Don’t stop learning
  40. patience and love

相关资料
15年程序员经验分享:40个改变你编程技能的小技巧!

关于博客

为什么写博客

写博客的目的,我有以下几点:
1、我本人记忆力极差,学过的知识,看过的视频,音频,书籍,文章很快就忘记了,看的时候觉得有用,转身就忘记了,我希望以博客的形式记录生活中,学习中有用的知识和学习方法。
2、锻炼讲故事的能力。当我向别人讲述我看过影视、视频、文章、书籍时,我的讲述往往是碎片化的,没有主线式的,我记得我看过一部美剧《权利的游戏》(冰与火之歌)在向同学讲述第一季的时候,我发现自己很难完整的讲完这个故事,不单单是因为我的记忆力的责任。
3、资源整合。我期望把我平时的学习过程记录下来,筛选我看过的视频,文章,书籍中有用的知识点进行整合。
4、记录。电脑不行了,电脑配置 CPU i5-6200U 内存 8G ,平时用浏览器多个看几个标签页都会有明显卡顿,然后再运行 一两个代码编辑器,基本上 CPU 和 内存 拉满。我之前已经重装过 N 次系统了,导致一部分文件丢失,重要的是我的 学习资料和老师的授课视频这让我很难受。我决定把我的学习视频和资料上传到 B 站上用于存储。然后用博客记录视频、文章的学习重点和方法。
5、我希望我的博客能让任何不懂技术的人看懂,并且一步步做出属于自己的应用。

阅读更多
You need to set client_id and slot_id to show this AD unit. Please set it in _config.yml.