在我职业生涯的大部分时间里,我一直致力于单线程业务逻辑/后端编程.我现在希望学习Web编程,但想知道Web编程与非GUI编程有何不同(例如编写API或文件处理应用程序).我不是在谈论GUI设计方面(有人已经在这里提出了这个问题),而是更多关于编程复杂性.
在我处理Web应用程序的少数情况下,我觉得Web应用程序相对更不确定且不可预测(例如,由于事件驱动,Web应用程序的多线程模型,有几种排列和组合需要照顾的事件和行动).
您认为Web编程的一些基本功能与非GUI应用程序有什么不同?在处理Web应用程序时,后端开发人员可能会犯下哪些陷阱/错误?
编辑 我对后端编程的定义意味着非GUI应用程序,如API或文件处理批处理应用程序,它解析大型数据文件,读取记录,对数据执行大量数字计算并将结果喷出到另一个文件或数据库.另一个例子可以是日期和时间工具库.
Web编程面临的最大挑战是处理状态问题.HTTP是无状态协议.这可以使维护状态比桌面应用程序更具挑战性.由于这个原因,Web应用程序往往具有不同的生命周期.每个Web开发平台处理的方式都有所不同,但它们都需要以某种方式处理它.
Web应用程序通常感觉像单线程应用程序,因为您 - 应用程序开发人员 - 很少创建自己的线程.如果有的话,它实际上要容易得多,因为Web事务的无状态特性意味着每次都必须从数据库加载页面的数据.因此,您不必担心并发性,因为"无论有什么"通常都足够好.
Web开发的最大问题是随着时间的推移你必须积累的所有背景知识.你如何布置网页?你如何用CSS设计风格?你如何从查询字符串中获取参数?如何在JavaScript中验证字段值?所有这些事情实际上都很容易学习,但是其中很多都是真正的痛苦.