一个软件, 重要的到底是什么

最近和同学开发一个网站,也算是cms吧 人一多遇到的全是坎坷。到底是先分工再写,还是如何。接口自始至终都没有完整的定义过,编写边改 哪怕是写的时候 也没有接口说明作为参照。在我看来能开发出这套系统确实令人惊叹。

后台写完了等前端,等了一段时间等到前端写完了,发现双方留的接口完全对不上,然后有一方选择改动。陷入了零和博弈,简单的说,前端和后台分为两组,必然有一方要改动,总有一方可以快乐的不改,但是这种快乐必然是建立在另一组的痛苦之上。写的无比艰辛,甚至让我怀疑我是否真的会编程。明明知道自己能力有限,做常常纠结与一个类怎么能写的更好,在未来可能会更具有扩展性,结果一个类一改再改。

在写这套系统的时候,算法和数据结构,反而成为了次要的东西,软件一开始的接口的说明, 如何设计这套系统耦合, 单独的模块怎么算测试通过,两个模块怎么耦合, 更多的是属于软件工程和设计模式的东西。

也算是边学边做,有过django的基础,边学pyramid边用, 顺便又熟悉了不少应用层上的东西。算是了解了登录系统的原理,然后又加了一层来让android不持有cookie也能通过同一套系统的验证。然后又设计了一套通知系统,sns的那种,不过估计只是勉强能用,一旦遇到海量数据就必崩无疑。

 

一套系统是不是开始的设计主要是看架构,然后才考虑性能呢。总觉得一开始过分的关注细枝,拖慢了开发进程。

 

也算是第一次有了多人使用git的经验,要学习的还有 很多