我正在构建一个新的网络应用程序,但我觉得我没有在构建它之前拥有我希望拥有的全局图像,所以我正在寻找资源,以便在整个堆栈中真正理解整个网络。
自2006年以来,我一直是一名自学成才的网络开发人员,但我在2010年大学期间休息了一段时间,并在2014年结束,并且出现了整个网络的变化。
我熟悉LAMP架构,只要你了解PHP,JavaScript,JQuery,MySQL,HTML& CSS你很好;现在MEAN正在制造很多噪音,我刚刚看了一下Facebook的构建内容,并谈到了HipHop,这是我以前从未听说过的,我觉得每隔一周就会出现框架和语言错失。
我基本上都在寻找资源来理解整个网络,而不仅仅是创建网页,以便我可以在将来做出有关构建此网站和任何其他网络应用程序的明智决策。我想知道所有这些新技术如何适应这种情况。
谢谢
答案 0 :(得分:1)
总体而言,您需要一个数据库,一个与该数据库通信的数据访问层,一个用于路由请求的东西以及一些向页面显示结果的东西。
有很多框架/技术。 IMO LAMP堆栈有点旧。并不是说它不适合用途,只是有更快,更好,更容易的堆栈。
在开发语言和框架方面,我会查看
的Ruby-on-导轨, Spring-boot(使用MVC,JPA,freemarker + mysql), ASP.NET5
对于数据库,mysql总是很受欢迎,因为它是免费的。 H2是一个免费的内存数据库,我认为这是一个很好的数据库,可以快速启动和运行。
一般来说,这些天数据访问是通过某种'对象关系映射器'框架完成的,比如Hibernate(如果你使用Java),Linq(如果你使用ASP.NET)或者rails上使用的任何ruby。
对于视图技术html,css显然是标准的,但最近Bootstrap3作为前端UI框架非常受欢迎,使事情变得更加容易。就Javascript而言,jQuery现在基本上是一个事实上的标准。像Knockout.js或Angular.js这样的东西可以在你的模型和你的视图之间提供很好的数据绑定,使事情变得更容易。
现在更不用说作为额外的层了,人们也将他们的应用程序放在Docker容器中并以这种方式部署它们以实现最大的可移植性。所以这是一个新的东西,如果你已经离开游戏一段时间,你将不会看到它。
无论如何,我最喜欢的是spring-boot堆栈。它有一个Tomcat Web服务器的嵌入式实例,它都是自动配置的。
答案 1 :(得分:1)
我认为影响当前Web开发方案的主要变化与基于云的服务有关,如Amazon AWS,Google Cloud,Microsoft Azure和虚拟专用服务器(VPS)。
现在更便宜,更有可能规划和开发分布式环境以实现大量用户。服务器正在调整他们的技术以适应这种新情况,并通过REST API(如Google,Facebook,Soundcloud和几乎所有其他服务提供商)为移动客户端提供简单的Web服务端点,使用JSON在服务器和客户端之间进行小数据传输。
这是Web开发的现在和不久的将来。我们再也无法关注移动设备了。移动第一时代正在到来。
你可以使用LAMP堆栈进行web开发,有或没有像zend,cakephp等框架,但最终产品将是REST或RESTfull服务提供商和客户端,以消费服务并与许多第三方集成,如谷歌,雅虎,Facebook,亚马逊服务构建现代应用程序。
至于数据库,现在有分布式非关系noSQL hadoop,mongodb,mariadb为计划强大的基础架构和灵活调整所有需求提供了更多选择。
创建一个伟大的网络平台是必要的,知道所有这些工具和可能性的存在,但专门和深入学习你将选择开发的工具,因为它是impossível学习一切,我们的大脑无法处理:)和所有这些都可以在这个领域快速更新。
选择正确的一个很难,有很多选择,但主要概念将始终相同,将有提供者和消费者前沿,分布式或非分布式,以及涉及UI,集成的多层次开发,业务和数据(大数据)操纵。但现在在云端。
你可以找到很好的官方资料,包括Php,amazon webservices,nonSQL数据库,常见的第三方API,如Google Apps,Facebook ...... REST客户端框架,JSON ......还有很多很好的替代资源...... .get在Github上有一些开源项目示例(GIT是另一个需要学习的强制工具)。
我特别在Java中开发,在亚马逊AWS基础架构上使用Linux / MySQL / Tomcat,使用Java-JSP作为服务器和Web客户端,使用Java作为Android ..我只需处理Java环境和一种语言服务器(网络服务器和SO程序)和客户端(Web和移动)开发。
嗯,我希望我能提供帮助,如果我说清楚因为我的英语是基本的,我也不知道这是否也是答案...
嗯,祝周末愉快。
利奥