• 思考:用开发移动app的观念来开发网站


    首先祝大家新年快乐。万事如意。

    开发网站程序也有一些年头了,从最初的静态HTML+ JS,到后来的WebForm,然后过渡到现在的MVC。

    由于最近做一些技术调研,也接触了很多移动开发,iOS和Android的东西也知道点,会做一些简单的app。

    做移动app做多了,再回头看网站开发,我开始怀疑,我们到底需不需要ASP.NET MVC这样的框架?

    网站的本质就是 HTML + CSS +JS + HTTP(TCP/IP)协议 + 可以响应HTTP协议的服务器。

    移动app的本质是 移动UI +  HTTP(TCP/IP)协议 + 可以响应HTTP协议的服务器。

    其实,他们没有多少本质区别,所以,现在各种 Hybird App 大行其道。

    我们经常说,前后端分离,真正操作的时候,或多或少都会违反这个原则。

    在真正做好一个前后端分离的系统,其实可以强迫这个系统现实 移动app和网站共享的功能。

    如果一开始的目标就是移动网站共享内容,则设计的时候,就是围绕REST的API开始的,而不是前后端杂糅的Razor的设计。

    对于一些老的程序员,习惯MVC的人来说,必然会有些反感,毕竟传统的做法,开发效率非常高,一个小型的网站,可以用小时来计算开发时间。

    如果改用新的方法,页面和服务器只是通过AJAX来通讯,则非常考验前端的水平。

    AngularJS 或者 ReactJS这样的框架虽然不是必须的,但是如果可以的话,在深入理解的前提下,可以使用。

    WebPack,Gulp,Nodejs这些东西,也会随着AngularJS,ReactJS的引入而进入工作范围之内。

    这样做的结果就是 MVC里面,

    V完全在前端,这个毫无疑问

    数据库关联的业务逻辑M完全在服务器端(购物车计算总价格,复核,扣款),前端也会处理一些简单的业务逻辑(购物车计算总价格,只是初步计算,不作为服务器处理凭证),

    C的话,基本上变得极其薄了,被Angular或者React和他们的衍生品取代了。或者说,C的话,变成了前端的C和后端的C。

    MVC的核心功能:路由,数据和表单绑定,数据验证

    数据验证,TypeScript(强数据类型),ES6(完整正则功能)都可以处理了。原本MVC也是靠JS+特性标签做到数据表单验证的。

    现在的前端也开始慢慢引入强数据类型的概念了。React框架的prop也是支持强类型的。

    数据验证,Razor基本上可以完全被前端框架取代了,(当然,微软在模板上暧昧的态度也值得吐槽一下,Razor之后又推出智能标签(MVC6),原本觉得模板应该像后端,现在觉得模板应该像前端)

    路由倒是一个我不熟悉的领域,不发表意见。

    将来的网站开发,在大数据和越来越成熟的各种服务的帮助下,可能核心价值会发生很大的变化。

    以前我们需要做一个登陆,注册的页面,现在可以直接用微信,QQ,微博进行注册和登陆了,这些功能可以简化了。

    像博客园这样的网站,UGC,各种现成的UGC可以直接拿来使用,各领域的内容管理系统,内容的数据挖掘,内容分析,UGC到知识库的整理将变成UGC网站的核心价值。

    一个UGC网站的价值不仅仅是提供写作平台,而是如何通过大数据手段,提炼数据中的内容,分类,整理,自动摘要和归档。

    如果做不到这一点,即使以后界面再漂亮,也是一个除了用户和文章,什么都没有的网站。

  • 相关阅读:
    URAL1996 Cipher Message 3(KMP + FFT)
    UVa12633 Super Rooks on Chessboard(容斥 + FFT)
    SPOJ TSUM Triple Sums(FFT + 容斥)
    UVa12298 Super Poker II(母函数 + FFT)
    LA4671 K-neighbor substrings(FFT + 字符串Hash)
    HDU4080 Stammering Aliens(二分 + 后缀数组)
    HDU4609 3-idiots(母函数 + FFT)
    HDU1402 A * B Problem Plus(FFT)
    快速傅里叶变换FFT学习小记
    HDU4971 A simple brute force problem.(强连通分量缩点 + 最大权闭合子图)
  • 原文地址:https://www.cnblogs.com/TextEditor/p/5183896.html
Copyright © 2020-2023  润新知