熟悉陌生框架或代码, 产品设计小结
2015-07-27 10:44:03
程序都是顺序被执行的
但是顺序写代码会很难维护, 结构不清晰, 代码冗余
框架, 就是把本来应该顺序写在一起的代码分开存放在不通的文件中, 并用不通的文件夹将其分类
但是程序仍要顺序执行, 这样就会有一种机制将分布在不通文件夹里的文件"拼接"在一起, 使其成为"可顺序执行"的
这个机制, 语言层面就是include, require, import, 对应的函数就可能是 load, auto_load, ....
所以熟悉一个框架, 最好从全局搜索这些关键词, 然后找到包含关系, 找到主干走向
======
如果不想这样找呢
网络开发无非是增删改查,
接手一个新框架, 先找到:
1. 处理数据库的文件在哪里,物理数据库表有大致有哪些(过一眼, 心里有个数, 对理解特务逻辑会有帮助, 框架里大多以model, db, driver, mysql, query, ....命名)
2. 处理表单/业务逻辑的PHP代码在哪里, 同一类的代码会放在哪里 (框架里大多以 controller, ***.class.php, ....命名)
3. 显示HTML用的代码在哪里 (框架里大多以 view, render命名)
4. 公共类库在哪里, 里边大致有哪些全局可访问的函数(框架里大多会以 lib, library, base, .... 命名)
解决问题的时候, 多用开发软件(编辑器, IDE,.....)提供的全局搜索功能
找到表单的名字, 或者直接到数据库里找到你要操作的字段, 全局搜索他, 然后找到处理该数据的文件, 最后确认处理逻辑在哪个文件里
或者, 比如与用户有关的, 通常处理数据的文件名字会叫user, account.... edit, update, add, del, delete, .......
======
产品设计:
对于一款产品, 添加新功能的时候要考虑已有功能的兼容
比如, 要把匿名用户当做普通已注册的用户来对待
要考虑到已注册的用户会有哪些行为, 那么匿名用户肯定也会有这样的行为: 编辑个人信息, 头像, 回答问题, 获取积分, 收发邮件, 私信.....
那么现有开发的程序功能, 是不是兼容这些数据, 比如, 普通用户是有userid的, 匿名用户也需要的, 等等
稍微总结一下就是, 现有的功能会在哪些地方使用, 新加的功能是否也会在这些方面被用到, 那么, 这些地方需要的信息userid, nickname,.... 新功能也应该有才能保证新老兼容