软件的本质就是代码。好像人的身体是细胞组成的,大多数细胞健康了,人才会健康强壮。同理,虽然软件成功的因素众多,但代码的质量就是项目“每一个细胞”的质量。大多数代码健康了,软件才会成功向上。一个仅仅“可以运行”的项目,如果它的代码没有可扩展性,没有可读性,没有健壮性,那么它一定会发生下列的各种的严重问题之一:
·一个小需求,正常情况只要几天就能改完,但现实却花了几个星期;
·需求变更,改完以后发现一处修改处处报错,要命的是这些报错隐藏极深,可能要好几轮的测试才能发现;
·项目的人员成本和时间成本像滚雪球一样越来越大,但是好像没做出多少有用的东西;
·你的项目越来越依赖“指定人选”来维护,人员一旦变动你的项目就要停滞不前。
显然,当一个项目出现上述问题时,它将很快由一个“可以运行”的项目成为一个“无法运行”的项目。项目经理挥舞着需求和绩效的大棒,码农们含辛茹苦日复一日地重复着相同工作,他们是“勤劳善良的劳动人民”。工程师们自嘲为“码农”、“码畜”,他们的汗与泪铸就了IT行业的高速发展。然而,“可怜之人必有可恨之处“,从反面来说,一味的“勤劳善良”也可能是“不思进取”甚至愚昧的表现:没有前瞻性,没有大局观,只看眼前一亩三分的典型的小农经济思维。
应届毕业生写的代码也是可以运行的,如果你已经工作一年以上,却仍然拿”仅仅可以运行“的标准来要求自己,如何获得成长?又如何有机会看到技术开发以上的事情呢?现实比理想总是要低那么一点,如果以“60分”的标准来要求,结果通常是不及格——目标是“混”下去的人,结果通常是连“混”都混不下去。
从行业的角度来说,国内的大部分it产业还处于劳动力密集的生产状态下,管理、技术都处于”作坊式“上下的水平。这也造成了it人才市场”供大于求“的虚假现象——高水平的技工和管理人员严重不足,招聘会上人头攒动的都是初级人员和应届毕业生,企业只能靠”人海“战术、”游击“战术来维持企业的运营,行业的普遍待遇和国外存在着数量级上的差别。因此,只有不断总结适合IT产业的经验、方法和指导思想,才能促进it行业从劳动密集转向科技密集型产业。
在这个最佳实践大行其道的时代里,我将会在博客上分享一系列的编程原则,还包括一些从业习惯的问题,希望能帮助含辛茹苦的码农们进阶,也希望对IT管理者们有所启发。
相关推荐
本书内容丰富、实用,作者通过258个程序范例详细描述了VB.NET开发Web网页以及数据库应用程序的方法和技巧,讲解深入细致,具体范例与软件功能紧密结合,指导性、实用性强。 本书不仅是用VB.NET进行开发、编程的广大...
第三部分“数据访问”和第四部分“C# Web应用”则聚焦于数据处理和高级Web应用开发。在“Introduction to Relational Databases and SQL”和“Introduction to ADO.NET”章节中,读者将学习关系数据库的基础知识和...
随着 iPhone 和 iPod touch 的流行,基于 Web 的应用开发成为了一个重要的领域,本书为开发者提供了全面的指导。 #### 二、目标读者与适用场景 本书适合那些希望为 iPhone 和 iPod touch 开发高质量 Web 应用程序的...
### 计算机专业外文翻译WEB应用:设计与实施互动型网络课程 #### 摘要解析 本文探讨了虚拟、基于Web的课程在教师群体中的流行趋势,并提出了一种利用新型Web技术构建此类课程的全面概念。该概念特别强调了对非技术...
在WEB应用开发过程中,确保数据库操作的一致性和完整性是至关重要的。无论是使用容器环境如EJB 2.1或3.0,还是Spring框架环境,或者是基于Web容器如Tomcat或Jetty与Java Open Transaction Manager (JOTM)的组合,都...
20.2 使用Python进行Web应用:创建一个简单的Web客户端 20.3 高级Web客户端 20.4 CGI:帮助Web服务器处理客户端数据 20.5 建立CGI应用程序 20.6 在CGI中使用Unicode编码 20.7 高级CGI ...
Tapestry 5是一个基于组件的Java Web开发框架,它提供了一种声明式的编程模型来构建高度交互式的Web应用。与传统的基于Servlet或JSP的Web开发方法相比,Tapestry 5通过组件化的方式降低了代码的耦合度,使得应用程序...
.NET框架是微软提供的一个全面的开发平台,支持多种编程语言如C++,用于构建分布式应用程序。Web服务则是一种基于XML(Extensible Markup Language)的标准,可以使得不同系统间的应用程序通过HTTP协议进行通信,...
Vaadin是一款基于Java的Web应用开发框架,它允许开发者使用Java语言来构建高质量的用户界面。该框架提供了一套即用型的用户界面组件,并允许开发者自行创建新的组件。其核心优势在于使用便捷性、可重用性、可扩展性...
- **连接Web应用**:探讨了如何利用XML-RPC来连接不同的Web应用,从而构建更复杂的系统。 #### Python与XML-RPC - **Python的XML-RPC实现**:Python作为一种现代的、动态的脚本语言,在实现XML-RPC方面也表现出色...
### Spring 实用开发包及其用途详解 #### 一、引言 在开发基于Spring框架的应用程序时,了解各个核心库(Jar文件)的功能至关重要。本文将详细介绍与Spring相关的多个核心库,包括它们的作用以及与其他库之间的依赖...
本文将根据Justin James在其作品《开发技术的选择四部曲教程》中的指导思想,详细介绍一种实用的技术选择流程。 #### 二、技术选择的重要性 技术的选择直接影响到系统的性能、可维护性和扩展性。对于开发者来说,...
《Ruby on Rails Enterprise Application Development》是一本非常实用的书籍,不仅适合已经有一定Ruby on Rails基础的开发者阅读,也适合希望了解企业级应用开发流程的项目经理和技术管理人员。通过学习本书,你...
本书旨在为对Windows 8应用开发感兴趣的Web开发者、UI设计师以及任何希望将Web技能迁移到桌面应用领域的人士提供实用指导。无论你是有经验的开发者还是初学者,都能从中找到有价值的信息。 #### 必需的准备(What ...
Tapestry是一种基于Java的开源Web应用框架,它通过将复杂的Web开发任务变得简单而优雅来提高开发效率。该框架的设计理念是让开发者能够专注于业务逻辑和应用设计,而无需过多关注底层技术细节。 #### 主要特性 1. ...
Tapestry是一种用于构建企业级Web应用程序的开源Java框架。它提供了一种声明式的编程模型,允许开发者关注于应用程序的业务逻辑而非底层细节。Tapestry的设计理念是让复杂的Web开发变得简单而优雅。 - **简化页面...
本书《初学者指南:安卓应用开发》旨在为刚接触安卓应用开发的读者提供一个全面且实用的入门指导。作者Serhan Yamacli在书中详细介绍了安卓操作系统的特性及其工作原理。 **1.1 安卓操作系统简介** 安卓系统是一种...