在我的大部分职业生涯中,我都致力于单线程业务逻辑/后端编程。我现在想学习web编程,但想知道web编程与非GUI编程有何不同(例如编写API或文件处理应用程序)。我说的不是GUI设计方面(有人已经问过这个问题here),而是更多关于编程复杂性的问题。
在我从事web应用程序的几次工作中,我感到web应用程序相对来说更不确定和不可预测(例如,由于web应用程序的事件驱动、多线程模型,需要处理的事件和操作有几个排列和组合)。
您会说哪些web编程的基本特性使其不同于非GUI应用程序?后端开发人员在开发web应用程序时可能会犯哪些缺陷/错误?
编辑我对后端编程的定义意味着非GUI应用程序,如API或文件处理批处理应用程序,它解析一个大数据文件,读取记录,对数据进行大量的数字处理计算,并将结果输出到另一个文件或数据库中。该示例可以是一个日期和时间实用程序库。
发布于 2009-02-05 03:00:08
Web应用程序通常感觉像是单线程应用程序,因为您--应用程序开发人员--很少创建自己的线程。如果有的话,这实际上要容易得多,因为web事务的无状态特性意味着您必须每次从数据库加载页面的数据。因此,您不必担心并发性,因为‘有什么东西’通常就足够好了。
Web开发的最大问题是,随着时间的推移,您必须积累的所有背景知识。你如何布置网页?你是如何用CSS来设计东西的?如何从查询字符串中获取参数?如何在JavaScript中验证字段值?所有这些东西其实都是很容易学到的,但它们太多了,这可能是一种真正的痛苦。
发布于 2009-02-05 02:52:24
web编程最大的挑战是如何处理状态。HTTP是一种无状态协议。这会使维护状态比在桌面应用程序中更具挑战性。由于这一点,Web应用程序往往有不同的生命周期。每个web开发平台都有不同的处理方式,但是他们都需要以某种方式处理它。
发布于 2009-02-05 03:22:59
我看到应用程序开发人员在进入Web时遇到的最大缺陷是不考虑代码的成本。他们要么滥用MySQL而使关系数据库系统陷入困境,要么编写占用过多内存的代码,要么制作大到适合拨号/手机或低端宽带/dsl管道的前端页面。
有时,在编写一个繁重的页面时无法避免,但是可以考虑尽可能多地缓存,或者在编写一个会被大量攻击的页面时,他们将在查询出门之前不做任何努力来分析和优化查询。
这并不是说这些人是愚蠢的,只是缺乏经验和意识,他们需要表现得很好,并编写一些有点精益的代码。
https://stackoverflow.com/questions/514347
复制相似问题