中易网

如何徒手做web开发?

答案:1  悬赏:0  
解决时间 2021-01-15 00:07
  • 提问者网友:送舟行
  • 2021-01-14 00:42
如何徒手做web开发?
最佳答案
  • 二级知识专家网友:怀裏藏嬌
  • 2021-01-14 01:46
如果题主是学生,从0开始写一个http服务器,或者mvc框架,或者ORM框架,每一个都值得钻研,哪怕只把其中一个做好,对技术都是一个质的提升。如果题主已经工作,那么你会发现弄那些配置文件,比真的写一个框架容易多了。

以下内容是给学生的题主的,仅供参考

HTTP服务器:简单的HTTP服务器可以理解为把符合HTTP协议的文本流放到SOCKET里,这个需要非常熟悉HTTP协议,最好把HTTP协议的原文读一下,而且要把里面每一个点实现。但这只是玩具级别的,真正像apache这种生产级别的,需要考虑高并发的问题,在linux下并发,可以选用进程并发、线程并发或混合模式,由于linux对线程和进程调度的差异,三个模式带来的性能消耗是不一样的;HTTP服务器最大的开销文件IO,linux支持epoll,是否应该使用?是否应该使用缓存减少IO?缓存策略应该如何设计?SOCKET连接也是耗资源的,是否需要连接池?连接池的管理策略该如何?

MVC框架:模版引擎该如何设计?为了更好的性能,大部分MVC框架都会预编译模版,那么模版的预编译结果该如何管理?现在主流MVC框架都支持AOP(Filter)了,该如何把这个特性应用到自己的ORM框架?Form输入如何和实体绑定?是否需要加入校验功能?对于Java这种语言,MVC框架可能带来大量的反射,如何提高性能?

ORM框架:如何选用适当的方式保存Mapping信息?如何提升反射的性能?如何构建查询,比如hibernate自创了HQL,C#用的是linq,也有框架用链式函数,它们各有什么优缺点,该如何选择,或者有没有更好的方法?如何用ORM的方式表达事务?表关联的情况下如何较高性能的情况下构建关联的对象?是否使用缓存,像hibernate就使用了两级缓存的方式保证性能,这个是否必须的?如果使用缓存,缓存管理策略该如何设计?缓存模块是否可以扩展,比如用Redis和memcache之类的?如果语言的基础库没有提供连接池,则必须自己实现连接池。框架是否集成支持读写分离的数据库架构,还是由用户自己实现?

我随便想想都能想到这么多要考虑的问题了,实际开发过程中可能会遇到更多的问题。开发这些东西,需要非常熟悉操作系统、网络编程、文件管理、内存管理、设计模式,甚至可能用上语法分析。这样比较,题主还觉得折腾那些配置复杂吗?
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息