专栏名称: MacTalk
MacTalk 开通于2012年末,内容起于 Mac 而不止 Mac,内容覆盖了技术、创业、产品和人文思考。文风有趣,又有一点力量。相关图书《MacTalk·人生元编程》《MacTalk·跨越边界》
目录
相关文章推荐
素食星球  ·  12月深圳市集 | ... ·  昨天  
素食星球  ·  12月深圳市集 | ... ·  昨天  
花果科技  ·  苹果发布 iOS 18.2 正式版,超多新功能! ·  5 天前  
花果科技  ·  苹果发布 iOS 18.2 正式版,超多新功能! ·  5 天前  
电脑吧评测室  ·  2024年不值得购买的显卡们 ·  5 天前  
电脑吧评测室  ·  2024年不值得购买的显卡们 ·  5 天前  
51好读  ›  专栏  ›  MacTalk

换一种方式编程

MacTalk  · 公众号  · 科技自媒体  · 2017-01-16 22:03

正文

题图摄影:By Ben Bac, Hue, Vietnam

一代宗师里的叶问说:四十岁之前,我没见过高山。那是因为叶先生年轻时就是高手。我呢,三十岁之前,身边尽是崇山峻岭,我只要跟着做事就好了。三十岁之后,开始有了一点想法,想做些不一样的东西。那时候在企业软件领域,程序员们不停的编写同样类型的代码,构建,复制,粘贴,编译,上线。那时候我就在想,是不是应该为程序员做一点事情。

正常情况下,我们做一款企业软件或是构建一个互联网服务,过程大概是这样的:

1、确定产品定位和需求,确定首次迭代的范围。
2、制作界面原型。
3、技术选型,然后根据技术选型为每个开发者搭建开发环境和技术栈,例如 PHP 环境,Java 环境、Python 环境、Ruby 环境、数据库、各类中间件等等。
4、构建基础技术框架和服务,包括日志、存储、消息、缓存、搜索、数据源、集群扩展等等。
5、模拟用户容量,构建测试环境。
6、开始编写真正的业务代码,实现产品功能。
7、迭代开发/测试,生生不息,周而复始。

如果你是个初创公司,还需要搭建的内容包括,代码管理系统,比如 Git,还有任务跟踪,Code Review,bug 跟踪,知识库,安全体系……也就是说,技术人员要做的事情除了3、4、5、6之外,还要去做这些工作。而真正为用户提供价值的,是【6】,编写真正的业务代码,实现产品功能。在这部分里其实也包括大量的重复代码,很多程序员是通过复制和粘贴解决的。这种做法带来的后遗症是在产品研发和维护的过程中不停的挖坑和填坑,你挖我填,我挖你填,同时鄙视链也随之形成了。你会经常看到这样的注释:

我当时写的时候是好的,要修改的话责任自负。
这段代码是我从老池那里复制过来的,修改的时候应该一起修改。
这段代码挺复杂的,你最好别碰,否则你会在凌晨一点痛恨自己为什么会认为自己优秀到足以优化这段代码。
反正这样写就是对的,我也不知道为啥

如何让程序员写真正有价值的代码呢?我开始了构建应用软件开发平台之旅,最终我们提供了一套完整的技术环境和技术解决方案,主要功能包括开发 IDE、基础框架、业务引擎、快速开发工具和组件库。开发者可以直接复用这些框架和引擎,数据字典和代码生成器可以让开发人员根据数据模型快速生成业务功能,包括前端UI展示、中间的业务转发和后端的数据持久化,并且可以通过对数据库元数据的管理实现动态业务功能处理,这些代码比人工编写靠谱得多。同时有完备的组织权限管理和安全体系……等等。有了这样一套平台,3、4、5基本上可以用很小的代价完成,程序员们开始专注复杂业务规则和功能的实现。

能否更进一步呢?比如把这些功能全部移植到云端,同时为开发人员提供代码管理、任务跟踪、Code Review 功能,甚至,可以直接上线部署,并提供集群扩展,CDN 等功能。当时我提出了这样的想法,但是最终因为公司性质、时机问题(2008年)、业务性质等原因,未能实现,我们就此止步了。

前一阵子和 OpenResty 的创始人春哥聊天,他已经基于 OpenResty 创业。思路如出一辙,他将为开发者提供一整套基于 Lua 和 OpenResty 的互联网软件开发平台。为复杂的业务系统提供现代化的构建、测试、优化和调试方法,包括代码分析、CDN 构建、WAF、Trace、DNS、容器、业务代码自动生成、用于 Trace 和 Debug 的 Y 语言等等。

还有一家公司也在做类似的事情,它的名字叫 CODING。事实上,他们更进一步,已经完全实现了我曾经的构想,把编程移上云端。

CODING

CODING (深圳市希云科技有限公司)是一家一站式云端软件开发服务商,成立于2014年2月底。旗下包含两条产品线:自主研发运营的云端开发协作平台 Coding.net,基于云技术的软件外包服务平台 CODING 码市。前者就是我之前提到的,把应用软件开发平台移动云端的思路。

「Coding.net」是 CODING 旗下自主研发运营的、国内最大的云端软件开发协作工具平台。产品于2014年7月正式推出,2016年3月收购 GitCafe,目前拥有35万开发者用户,60万个项目,每天上传和下拉代码超过300万次,修改代码超过1亿行。

2017年1月12日,CODING 在北京推出了全新的企业级产品 —— Coding Enterprise,这是 CODING 在继收购 GitCafe 后的又一大的举措,也是一贯低调的 CODING 首次高调宣布强势进军企业服务行业。

Coding Enterprise 是 Coding 开发者工具的企业级 SaaS 服务,提供针对中小型企业的公有云版本和针对大型企业的私有云版本,可以方便企业用户更好的管理企业内的项目和成员,实时掌控企业开发的整体情况,帮助企业开发协作更高效便捷。

在多人协作的开发过程中,代码跟踪、文档、项目信息实时更新、版本控制变得前所未有的重要,而 Git 技术因其对非线性开发模式的良好支持和卓越的项目管理能力,在团队开发协作中表现出了极大的安全性和优越性。CODING 作为国内 Git 技术领域的代表性厂商,在平台服务质量以及体验性上投入了极大的资源和努力。本次推出的企业版是 CODING 技术团队历时一年精心打磨 —— 基于 React 进行开发,使用 Redux 来管理前端状态,用 Webpack 来做打包,用 Babel 来做编译的,具有完全自主知识产权的产品。

根据数据显示,与部署非云计算平台相比,Coding Enterprise 在硬件、软件的安装和系统测试等工作中能节约 10%-15% 的项目时间,通过实时的在线 Webtraining 和 Coding wiki,应用系统培训能节约 10%-15% 的时间,而免除后期维护则可以为企业节约 5%-10% 的系统管理成本。

Coding Enterprise 全面覆盖研发流程,提供企业级数据保障和全工程师服务团队。除了 CDN 服务,分布式架构和多重跨机房自动加密备份机制之外,还提供需求管理、任务跟踪、代码托管、Code Review、Bug 跟踪等工具。

CODING 的愿景是「Coding Anytime Anywhere 」。如果你是一家创业公司,或者软件服务提供商,那么,是时候改变一种编程方式了。

点击阅读原文了解详情。