zoukankan      html  css  js  c++  java
  • 程序员心理看WEB开发框架

    以下只能说是我的个人开发的感悟。

    从做网站到现在做WEB端的应用,我度过了三个时期:

    一、使用框架来搭建自己需要的系统。一开始是大框架如drupal(这里我更倾向于称drupal是框架而不是cms),后来觉得过于笨重。于是改用codeignitor等小框架。

    二、不再完全使用框架的MVC。而是用框架做服务端数据接口,只提供纯数据,由前端进行逻辑处理和渲染。

    三、前端从简单的“分模块,渲染与逻辑混合”,到“分模块,面向页面元素的MVC”,再到“分模块,事件驱动的,面向切面的MVC”(稍后详述)。

    为什么会有这三个时期的转变,实际上很大程度是由我对开发过程的希望驱使的。这些希望是这样的:

    1. 当需求确定好以后,首先我希望在前后台单独开发,只要约定好数据接口就行,这样如果有人来帮我,可以很快的互不打扰地进行。而且可以很灵活的各自用虚拟数据测试。
    2. 当我开发前端时,我想要渲染和逻辑完全分离,这样我就可以写逻辑的时候专心于逻辑。保持代码整洁。最重要的是随便页面怎么改,只要业务大体不变,逻辑就可以写好了不用再管。这就引进了前端MVC,实际上就是简单的数据集和渲染的关系。
    3. 我希望逻辑事件的触发是由页面来决定的,并且怎么变都不用再动写好的逻辑层(本质意义上的不动,连文件都不用打开)。这就引入了事件驱动,逻辑层只用监听感兴趣的事件(包括和服务器端的通信也可以用事件驱动),只用触发自己完成后的事件,什么都不用管。渲染层也是如此。
    4. 我希望页面的事件如click, dblclick等能和逻辑事件分离,最好我在这些元素上指定一个特定的属性,它就能给我自动转换并去触发逻辑事件。这样我写js的时候就只用管特效就够了。这就引入了页面事件代理(详见上一篇关于ace-engine)。这样可以随便采用什么页面模板就没关系。

    以上四点的希望就是我目前开发的理想状态,重点是“简单、重用”,这里的重用实际上指的是“容易加新功能”,“容易应对需求修改”,“容易找bug”。心有余力的话才是“下次还能用”。我想这也是很多和我同样的程序员所迫切需求的吧,虽然我觉得这个层次很低啊,哈哈。下面简单讲如何实现。

    1. 前后分离很容易,做好约定就行了。
    2. 前端mvc可以采用backbone,也可以采用简单的数据集和模板来做。
    3. 对于spa来说,通过定义一个全局事件,各个模块用自己的模块名作命名空间就行了。建议全部事件都通过这个全局的来驱动。使用了backbone的话,不建议直接使用backbone的模型的事件。
    4. 建议采用ace-engine的ace-template,也可以自己写。
  • 相关阅读:
    11-UIKit(Storyboard、View的基本概念、绘制图形、UIBezierPath)
    10-UIKit(UIDatePicker、UIPickerView、UIWebView、Storyboard)
    09-UIKit(UICollectionViewController、UITabBarController)
    ios7 UITableView底线右移
    08-UIKit(UITableTableViewCell、自定义Cell、xcode调试)
    07-UIKit(tableview的编辑模式、accessoryView)
    06-UIKit(tableView数据模型)
    05-UIKit(UITableViewController)
    04-UIKit(UINavigationController、NSAttributeString、UIImageView)
    HDU 4422 采蘑菇的小女孩
  • 原文地址:https://www.cnblogs.com/sskyy/p/2530718.html
Copyright © 2011-2022 走看看