以前上学的时候其实大概读过这本书,但是那时没有什么项目经验,对于重构还很难理解其意义,最近因为又读了一遍这本书,发现确实是很棒的一本书,虽然现在写javascript,而这本书是以java为基础的,但仍然有很多值得参考的地方,尤其是一些常见的重构手法,让人看的时就会觉得对对对,确实经常这么干,比如Extract method还有Replace array with object等等都可以应用到其他环境中。
阅读这本书最重要的首先是需要理解的是什么是重构,以前也自诩会定期重构代码,但现在想想,其实真正算作重构的时候并不多,大部分时候我们其实只是在重写,只是因为项目规模较小,所以许多问题并没有暴露出来罢了。
先看看重构的定义:“对软
继续阅读 »
content
{:toc}
本文主要说明对这个博客主题的改版和代码重构的过程。这个简洁高雅的博客主题受到了很多朋友的喜欢。在写第一版界面时,我对前端并不是很熟悉,对Jekyll也不熟悉。现在距离当时也一年了,对自己当时写的代码也不太满意了,同时Jekyll如今也已经升级了,目前最新版为3.1.2。因此我在临近毕业尚未入职前做一下博客主题的代码重构和改版吧。
主要想做这些事情有:添加归档,添加标签,添加分类页面,主页显示文章摘要,代码去除 jQuery 和 BootStrap,优化移动端显示,将所有变量写入配置文件_config.yml中等。再优化一些细节吧。希望更多人会喜欢。
继续阅读 »
一些重构的建议:
提炼函数
* 避免出现超大函数
* 独立出来的函数有助于代码复用
* 独立出来的函数更容易被覆写
* 独立出来的函数如果拥有一个良好的命名,
* 它本身就起到了注释的作用。
比如在一个负责取得用户信息的函数里面,我们还需要打印跟用户信息有关的log,那么打印log的语句就可以被封装在一个独立的函数里:
var getUserInfo = function() {
ajax('http://xxx.com/userInfo', function(data) {
console.log('userId: ' + data.userId);
console.log('u
继续阅读 »
主要想法:
将作业与插件分离,通过定义新的作业融合各个插件。
实现细节:
客户端:
1.提供服务配置查询命令。
2.由客户端指定作业类型。 例如 csf-job-run -t workflow myjobs.xml
继续阅读 »
随着xmake v2.0.1 版本的发布,这大半年的辛苦总算告一段落,这个版本我基本上重构整个项目的90%的代码,几乎算是重写了,但结果还算挺满意的。。
因为上个版本的架构设计的不是很好,不能很好进行扩展,也不支持插件模式,语法设计上也不严谨,容易出现各种隐患,这对于后期维护和发展来说,已经出现了不可逾越的瓶颈。。
每个项目到了一定阶段,都是要不断重构,重新构思整体架构,才能使得项目不断的向好的方向演进。。
(当然如果是公司项目就另当别论了,坑太多,历史负担较重,不是说要重构就能让你重构的。=。=)
回归正题,目前xmake基本上所有模块都是可扩展的:
插件扩展
工程模板扩展
平台架构扩展
action扩展
option选
继续阅读 »
5个多月过去了,OkBuck和AndroidTDDBootStrap项目都发生了重大更新,原文中的描述已经过时已久,今天趁着AndroidTDDBootStrap完成重构,更新AndroidTDDBootStrap的OkBuck配置过程,继续体验其畅快淋漓!
继续阅读 »
前阵子重构部门业务框架,大部分代码转移到了Laravel,小部分代码遗留在旧框架中。在转移的过程中Nginx是无法通过通用配置来进行两个框架的Url重写切换的,Nginx需要对每个Module,甚至每个Action都进行配置,导致Nginx配置冗余巨大,参与的同事每上线一个功能就需要上服务器增加或修改Nginx配置,苦不堪言。
继续阅读 »
之前由于项目需要,写了一个开屏广告组件XHLaunchAd,主要自用,后来发现越来越多的开发者,有这个需求.
随着使用人数的增加,部分开发者使用者提出了一些需求和问题,XHLaunchAd并不能很好的解决.
于是决定最近抽时间,把这个组件优化重构一下,解决网友之前提出一些问题和需求,并增加一些新功能,发布v3.0.0版本.
该项目目前已经收到 700 多个 star ,目前已经更新到v3.0.1版本
继续阅读 »
note of https://www.ichunqiu.com/course/56927
Hacking三步曲
理解系统(Understanding)
系统性的基础课程学习,深入理解计算机系统运作机制。
破坏系统(Breaking)
学习与创造漏洞挖掘与利用技巧
重构系统(Reconstruction)
设计与构建系统防护
基础课程学习
核心基础课程——计算机的工作原理
体系结构
CPU的设计与实现
机器指令与汇编语言
指令的解码、执行
内存管理
CMU 18-447 Introduction to Computer Architecture
https://www.ece.cmu.edu/~ece447/s15/dok
继续阅读 »
作者简介:Steve Yegge是一名程序员,也是博主,写了很多关于编程语言,生产力,和软件文化的文章。他拥有华盛顿大学计算机科学本科学位,20年的业界经验,开发领域涉及嵌入式操作系统、可扩展的电子商务系统、移动设备应用、提升软件生产力的工具等。他曾供职于亚马逊和Google等公司。
徐旭铭,编了十几年程,翻译过几本书,现在在亚马逊当码农。工作和兴趣都是写代码,喜欢看上去很麻烦的问题。住在西雅图,闲暇时喜欢看美剧。
这本书真是太有意思了,里面充斥了作者对各种语言以及开发现象和编程风格的吐槽,但是读来并不让人反感,也不觉得偏激,真是太有才了,真羡慕可以把吐槽文也写得这么棒的人。在书中,作者着重推荐了《重构》注意是Refactori
继续阅读 »