用做网页开发经历了三个阶段(附长篇讨论) good
用做网页开发经历了三个阶段:
第一阶:傻干阶段
使用Intraweb,傻瓜型,无需知道javascript,html,css,会pascal就可以了。
第二阶:困惑阶段
使用Intraweb,有很多限制,比如资料少,界面不容易做漂亮,没有源代码等等。于是转向研究其他开发工具。首先吸引眼球的是Nodejs,前后台用一种语言Javascript,爽,运行速度也不赖。
随着PHP7的发布,注意力也被PHP7的高性能所吸引,玩了一阵PHP7。当然还有以前摸过的Tomcat/asp.net,各种框架一大堆。还有,也许是未来方向的Rust语言(无视GO),这方面有Iron/nickel。
玩着玩着,还是发现问题了。PHP/Nodejs,解释执行,无法编译,一点隐私都没有。虽然PHP足够稳定,速度也不错,还是放弃吧。尼玛的微软,PHP7发布了,你赶紧提供PHP7的驱动啊,我要用PHP7来连接SQL Server。微软:“哈哈,你等着吧,迟早会有的。”别说Laravel好,源代码一大堆,资料一大箩,读死你。Nodejs,后面的依赖一大堆,出点问题。你找去吧,你结交的朋友太多,谁知道哪个朋友出卖了你。
Tomcat是一个不错的选择,企业级,开源,各种框架你随便挑,稳定性没有问题,喜欢高价语言的还有Scala可玩;自动生成代码的也有,比如jeecg,连微信的开发都有了。尼玛的jeecg,害死人,自动生成的代码你改得了吗,客户今天有这个需求,明天有那个需求,除非jeecg是你写的,你想改就改。最让人受不了的是tomcat的速度,同样功能的程序,PHP都跑到半山腰了,那只公猫还在山脚下晃晃悠悠。
大姑娘,小媳妇,外面的野花你随便采。采过之后你发现,还是家花好。
第三阶:回归阶段
于是有了:WYSIWYG WebBuilder + Delphi 开发Web应用的最佳搭档(
http://bbs.2ccc.com/topic.asp?topicid=512086)
我一直纳闷:Delphi这么好的语言,性能直逼C++,完全的Native Code,在Web开发这块领地,咋就没有数得着的成功案例?
其实大家将最好的东西忽略了,这就是WebBroker,因为大家把聚光灯都照在了IntraWeb上。结果IntraWeb是个不争气的孩子,做前端没有框架,一点艺术细胞都没有;做后端没有性能,Indy的框架显然满足不了当下高并发高速度的网络需求。要是不研究mORMot,还不知道用Delphi也可以写http.sys应用。不研究http.sys,就不知道IIS如此牛逼,不知道IIS的好,就不会去研究ISAPI。一研究ISAPI,你才发现,原来Delphi7的时代,WebBroker就已经IOCP了。
后台WebBroker,性能与稳定性建立在ISAPI基础上,站在巨人的肩膀上,你还怕没有好戏看吗?就差前台工具了。
前台我选WYSIWYG WebBuilder,这个东西你越用越喜欢,可以与WebBroker“狼狈为Jian”,帮WebBroker补全开发页面缺少所见即所得需要的工具。
WebBroker与WebBuilder的粘合剂就是javascript+AJAX/AJAJ,将javascript发扬光大的是jQuery,当然还有Angular/React。
前端完全采用html文件,负责页面展示,是"View",后端只负责json数据提供(当然json数据中没有规定你不能写html元素),负责读写数据库,是"Model"。"Control"在哪里?前后都有,前端是javascript写的引导程序,页面一启动,首先向后端发起ajax请求,接到后端的返回数据后负责对页面加工。肖老尸告诉你,这就是Intraweb的玩法,后端不光返回数据,也可以返回运行指令,一段javascript代码片段,让浏览器来执行。有兴趣的朋友,可以仔细研究我在“最佳搭档”开篇中那段javascript代码,那里有文章。
别告诉我IW也可以写ISAPI,尼玛IW,代码锁在自己的抽屉里,就等着发霉吧。request居然不能操作RawContent,只能解析x-www-form-urlencoded与multipart/form-data格式编码数据,如果前端直接往后端发送application/json或者text/xml编码数据,IW歇菜了。你只会炖猪肉,给你牛排你不知道如何加工,那你倒是把收到的牛排拿出来呀,尼玛的,你解析不了,又把原材料锁起来,我如何招待特需客户。
IW重写ISAPI,提升性能?性能在哪里,性能在Bill Gates那里,IIS才是性能之源。用IW 58版写一个Win10下64位的ISAPI,浏览器收到404错误,不知道问题出在哪里。人家Berlin版的WebBroker一点毛病都没患(不是没有哦)。你只用Delphi来写restFul Sevice,你是选择没有源代码,附加功能一大堆的IW,还是选择提供全部源代码,轻量级的WebBroker呢?WebBroker没有Session,Session那点事,根本就不是事,自己来。自己生的娃,出了问题自己才好教。
http://bbs.2ccc.com/topic.asp?topicid=478609
用做网页开发经历了三个阶段(附长篇讨论) good的更多相关文章
- .net程序员转行做手游开发经历(一)
从辞职到自己开发游戏也有几个月的时间了,游戏也已经在AppStore上线了,我觉得我有必要写点东西,算是留下的一些记忆,也可以和广大博友分享下自己的创业经历,这可能不是一篇成功的创业经历,因为故事还在 ...
- 【转】网页游戏能用PHP做后端开发吗? PHP Libevent扩展安装及应用
网页游戏能用PHP做后端开发吗? 当然可以.最好走HTTP,也可以做网络编程,而且写代码超简单,1个函数就可以建一个服务器端.stream_socket_server()多线程不是什么好主意,你可以用 ...
- [HTML]网页开发学习笔记
为了要开发一套教学使用的教师管理系统,(客户需求使用网页做教师控制端口)我便学习了一下HTML网页开发. 很不错的学习开发的网站:http://www.w3school.com.cn/index.ht ...
- 免费的HTML5连载来了《HTML5网页开发实例详解》连载(五)图解通过Fiddler加速开发
Fiddler是Windows底下最强大的请求代理调试工具,监控任何浏览器的HTTP/HTTPS流量,窜改客户端请求和服务器响应,解密HTTPS Web会话,图4.44为Fiddler原理示意图. 图 ...
- 《HTML5网页开发实例详解》连载(四)HTML5中的FileSystem接口
HTML 5除了提供用于获取文件信息的File对象外,还添加了FileSystem相关的应用接口.FileSystem对于不同的处理功能做了细致的分类,如用于文件读取和处理的FileReader和Fi ...
- 免费的HTML5连载来了《HTML5网页开发实例详解》连载(三)DOCTYPE和字符集
在2.1.2节中通过新老DOCTYPE的对比,读者可以清晰地看到HTML 5在精简旧有结构上做出的努力.DOCTYPE在出现之初主要用于XML中,用作描述XML允许使用的元素.属性和排列方式.起初HT ...
- 当里个当,免费的HTML5连载来了《HTML5网页开发实例详解》连载(一)
读懂<HTML5网页开发实例详解>这本书 你还在用Flash嘛?帮主早不用了 乔布斯生前在公开信“Flash之我见”中预言:像HTML 5这样在移动时代中创立的新标准,将会在移动设备上获得 ...
- 8款替代Dreamweaver的开源网页开发工具
Adobe Dreamweaver虽然非常好用,但它并不是唯一一个能够设计.开发.发布精彩网站的Web开发集成环境.我们的开源世界里有很多非常棒的可以完全替代Dreamweaver的各种功能的优秀We ...
- 有人说,即使没有JavaScript,你也可以做网页。在纯HTML
有人说,即使没有JavaScript,你也可以做网页.在纯HTML +服务器端语言理论中也可以完成所有功能,那么,为什么以及在哪里存在JavaScript? JS,全称JavaScript 在 ...
随机推荐
- js Array 学习
摘抄自<JavaScript权威指南> 1.join()返回生成的字符串.数组元素转化为字符串,拼接.默认分隔符:“,”. 2.reverse()返回逆序的数组,替换.数组中的元素倒序. ...
- MYSQL while 、repeat
前期准备: createt table employee(ID int ,Name varchar(4)); 用下列方法向表中循环插入数据. ----------------------------- ...
- 【转】浏览器中的data类型的Url格式,data:image/png,data:image/jpeg!
所谓"data"类型的Url格式,是在RFC2397中 提出的,目的对于一些"小"的数据,可以在网页中直接嵌入,而不是从外部文件载入.例如对于img这个Tag, ...
- javascript对象继承的实现
现在有两个对象,需要实现Chinese类型对象对Person类型对象的继承. 这里分两部分,属性和方法. 属性可以直接用构造函数的方法实现继承,而方法则要通过原型链来实现继承. 先解释什么是原型链,每 ...
- python官方文档
Tutorialstart here Library Referencekeep this under your pillow Language Referencedescribes syntax a ...
- linux之SQL语句简明教程---LIKE
LIKE 是另一个在 WHERE 子句中会用到的指令.基本上,LIKE 能让我们依据一个套式 (pattern) 来找出我们要的资料.相对来说,在运用 IN 的时候,我们完全地知道我们需要的条件:在运 ...
- 【Java】使用Runtime执行其他程序
public class ExecDemo{ public static void main(String[] args) { Runtime r = Runtime.getRuntime(); Pr ...
- zlog
zlog源码包下载地址https://github.com/HardySimpson/zlog zlog使用手册http://blog.csdn.net/yangzhenzhen/article/de ...
- linux中的strings命令简介2
摘自:http://blog.csdn.net/stpeace/article/details/46641069 linux中的strings命令简介 之前我们聊过linux strings的用法和用 ...
- 你知道为什么Xcode6中Swift没有智能提示和自己主动补全功能吗 ?
你知道为什么Xcode6中Swift没有智能提示和自己主动补全功能吗 ? 长沙戴维营教育将为你解开这个巨大的谜团大BUG! http://www.ubuntucollege.cn/course/29/ ...