(林雷看来13):功能优先,发展和重建同步,业绩后



    依据自己2年多的实际开发经验,我认为:在项目开发过程中,功能是最优先的,开发与重构相同重要。性能放后面考虑

我们工作的最基本目标是。保证工作单位的项目能够如期交付。至少要保证自己的进度。一份薪水,一份责任。
此外。作为技术工作者,我们也有自己的技术追求。提高敲代码的能力。写有含金量的代码,保证自己的能力能够与时俱进。

功能优先,进度就是最直接的要求。对于有可视化界面的项目来说,功能能跑通更是最主要的。Boss看不到界面和功能能够正常执行,是不能清楚地知道你的进度了。客户看不到界面。就等于未完毕,人最怕没有进度条,仅仅能焦急地等待。

下游环节,比方功能測试等,不到完毕的功能交付,真正的測试工作就无法開始(測试用例能够提前编写)。

重构与开发并举。 项目开发过程中,重构非常重要。前期的设计再具体,不到实际动手编码,非常多问题的细节,你是考虑不到的。因此,代码功能尽管完毕了。可是常常存在思路不清楚、代码反复等小问题。所以,开发完一个小功能,重构一下。比方提取清除不必要的暂时变量、取个更准确的方法名称、提取公共的逻辑为工具方法等。

而在后期。大的重构则要谨慎。

主要是这个时候,重构与项目质量与项目进度可能冲突。尤其是对项目负关键责任的经理等人。不希望在交付前期,出现差池。

性能殿后。不是说性能不重要,而是说性能不好衡量。在项眼下期和运营前期。性能不好向客户等角色阐述它的价值。

此外,非常多项眼下期对性能的要求根本不会太高,仅仅要不乱写代码,性能应付前期通常是能够的。

非常多项目,比方针对普通消费者(to-c) 的项目,前期可能就对性能有明白要求。针对这样的情况。我认为:项目的架构设计、代码组织、数据库设计,仅仅要保证结构清楚和业务清楚。后期优化是非常easy的。基本不会对代码的总体结构有大的改变。

比方添加缓存。不会对核心业务有修改。

以上是大道理,以下以我近期的项目开发经历。 再谈谈一点体会。

项目,后端是个管理系统,从后台读取数据,然后显示当前用户能够操作的菜单。

功能优先,我们有3个开发,同一时候进行编码。

菜单是项目最主要的,没有菜单,开发測试非常不方便,所以非常迅速简洁地把权限和菜单做了出来。

开发与重构并举。近期主要功能完毕了,我想对菜单这块进行重构。曾经为了优先保证总体进度,菜单相关表存储了一些额外的数据,感觉比較多余,并且要完毕新的功能,又须要编辑这张表的数据。手动维护冗余字段,给新功能带来了额外的工作量。所以,我认为先重构,再完毕新功能。

但在重构中,我范了“编码之大忌”,这是一个反面典型案例。

我一边完毕正常功能、一边为了保证程序的性能,写了不少功能之外的代码。大概是这样,把List集合转换成Map格式的Tree树,写的是递归算法。本来递归,对思考逻辑就要清楚,为了性能,多写了推断“提前返回” 的优化代码。结果非常慘,优化代码写得不准确,导致最后的菜单数据,不出来、数据不完整(提前返回导致的)。

事后反思,我认为写代码的时候,尽量先专注一件事, 逐个击破比較好。

把功能正确实现。在写的过程中。假设有疑问。比方数据校验、性能之类。能够先写个"TODO:须要优化"。等功能測试通过。再搞下一个。

One by one, it is good.

雷观:小雷FansUnion的个人观点,欢迎互动交流
2014年12月15日
湖北-武汉-循礼门

时间: 2024-08-05 02:43:09

(林雷看来13):功能优先,发展和重建同步,业绩后的相关文章

雷观(十三):功能优先,开发与重构并举,性能殿后

    根据自己2年多的实际开发经验,我认为:在项目开发过程中,功能是最优先的,开发与重构同样重要,性能放后面考虑. 我们工作的最基本目标是,保证工作单位的项目能够如期交付,至少要保证自己的进度.一份薪水,一份责任.此外,作为技术工作者,我们也有自己的技术追求,提高写程序的能力,写有含金量的代码,保证自己的能力能够与时俱进. 功能优先,进度就是最直接的要求.对于有可视化界面的项目来说,功能能跑通更是最基本的.Boss看不到界面和功能可以正常运行,是不能清楚地知道你的进度了.客户看不到界面,就等于

评分模型的检验方法和标准通常有:K-S指标、交换曲线、AR值、Gini数等。例如,K-S指标是用来衡量验证结果是否优于期望值,具体标准为:如果K-S大于40%,模型具有较好的预测功能,发展的模型具有成功的应用价值。K-S值越大,表示评分模型能够将“好客户”、“坏客户”区分开来的程度越大。

例如,K-S指标是用来衡量验证结果是否优于期望值,具体标准为:如果K-S大于40%,模型具有较好的预测功能,发展的模型具有成功的应用价值.K-S值越大,表示评分模型能够将"好客户"."坏客户"区分开来的程度越大. 信用评分模型介绍(一) 2016-08-28 蒋靓 Larry Jiang Larry的风险模型分享与探讨 引言:对于信用评分模型,很多朋友或多或少有所了解,这里做一般性的介绍,并分享自己的多年从业经验.这边短文主要包括:信用评分模型,自变量的生成.筛选.

国家优先发展人工智能战略能否”梦想成真”?

以往,人工智能(AI)在一般国人心目中是一个"冷门",是科幻中故事.现在,情况不同了.为什么? 李彦宏在政协第二次全体会议上表示,"我国人工智能领域的研究积累和发达国家相比差距不大,如果能在国家战略层面制定针对人工智能的全面推进计划,将是我们国家实现弯道超车,提升综合国力和影响力的绝佳机会."李彦宏建议,国家尤其是军方介入建立一个几十万台服务器的技术架构,并开放给社会的各个层面,包括科研机构.民营公司或是国企以及创业者,让大家在这个平台上尝试做各种各样的事情.李彦宏

人工智能的策略,如果国家优先发展”梦想成真”?

以往,人工智能(AI)在一般国人心目中是一个"冷门",是科幻中故事.如今.情况不同了.为什么? 李彦宏在政协第二次全体会议上表示,"我国人工智能领域的研究积累和发达国家相比差距不大.假设能在国家战略层面制定针对人工智能的全面推进计划,将是我们国家实现弯道超车,提升综合国力和影响力的绝佳机会."李彦宏建议,国家尤其是军方介入建立一个几十万台server的技术架构,并开放给社会的各个层面.包含科研机构.民营公司或是国企以及创业者.让大家在这个平台上尝试做各种各样的事情.

一家VC支持企业的发展轨迹——了解每次融资后股权的变化,以及股份是如何被稀释的【转载】

来源:ReachVc 如果你是一个不太了解融资的创业者,那么本文将对你很有用.通过武林外传同福客栈的例子,了解每次融资后股权的变化,以及股份是如何被稀释的. 话说,在闻名天下的关中七侠镇,有个叫做吕轻侯的创业者,他是个知识分子--落难秀才,因为找不到工作,所以在七侠镇镇政府的鼓励下开始创业,开了一家客栈--同福客栈.但由于客栈只提供单一的客房服务,再加上吕秀才自身的工作能力也不足,而且团队严重短缺--就他自己一个人,所以生意很一般,都快要关门大吉了.当然,作为这家创业公司的唯一创始人及员工,吕秀

Android使得手机拍照功能的发展(源共享)

Android系统调用手机拍照功能有两种方法来直接调用手机自带摄像头还有一个就是要当心自己的节拍. 例Camera360 强大的一个在每个操作系统都有一个手机摄影软件:您可以捕捉不同风格,不同特效的照片,同一时候具有云服务和互联网分享功能,全球用户已经超过2.5亿.如今专门的开发一款手机摄影软件肯定没多大意义,已经比只是这些前辈了.我们仅仅需学会怎样调用手机自带的摄像机完毕拍照并把照片获取过来,为用户提供上传头像,发表图文微博,传送图片的功能就可以. 完毕上述的功能十分的简单,甚至不须要在清单文

13、优先使用基本类型

java提供了两种类型,基本类型和引用类型,而基本类型也有对应的装箱类型,也就是它们的应用类型.但是我们通常建议在能够使用基本类型的地方不使用装箱类型,因为这会导致很多问题你需要去解决,比如你可能遇到null问题,你可能遇到==比较失效问题.或者自动装箱拆箱导致的内存开销问题.使用基本类型,你可以节省时间,空间,你也可以提升性能.所以,通常如果能够直接使用基本类型那么就使用基本类型.

Verilog学习笔记简单功能实现(八)...............同步FIFO

Part 1,功能定义: 用16*8 RAM实现一个同步先进先出(FIFO)队列设计.由写使能端控制该数据流的写入FIFO,并由读使能控制FIFO中数据的读出.写入和读出的操作(高电平有效)由时钟的上升沿触发.当FIFO的数据满和空的时候分别设置相应的高电平加以指示.FIFO是英文First In First Out 的缩写,是一种先进先出的数据缓存器,它与普通存储器的区别是没有外部读写地址线,这样使用起来非常简单,但缺点就是只能顺序写入数据,顺序的读出数据,其数据地址由内部读写指针自动加1完成

MVC学习6 学习使用Code First Migrations功能 把Model的更新同步到DB中

 参考:http://www.asp.net/mvc/tutorials/mvc-4/getting-started-with-aspnet-mvc4/adding-a-new-field-to-the-movie-model-and-table 转:http://www.it165.net/pro/html/201403/10653.html 本文内容: 1,学习Entity Framework Code First 迁移功能(Migrations) 2,更新Model Class(Model