我是一名有各种语言和平台工作经验的程序员,但我缺乏任何Web开发经验(除了PHP生成的一些非常基本的HTML).
我正在寻找关于Linux下Web编程基础知识的教程.我对apache配置和服务器维护不太感兴趣,我很清楚,但是使用现代技术实际构建了一个网站.我熟悉python,但我会很好地处理任何脚本语言.
你有什么建议?你能说说W3Schhools的教程吗?
一堆谢谢,
乌迪
有了您的Python知识,您可能会发现像Django这样的教程很有用.它足够现代,可以在Google App Engine中使用.
还可以尝试TurboGears教程,另一个Python Web框架.这将为您提供(现代)Web编程的不同角度.
在维基百科上查找介绍和许多指向其他框架的内容.
这是一个相当广泛的问题.你必须意识到有很多潜在的答案,这里已经给出的是体面的答案.而且你必须意识到,无论你选择什么教程,它都是你做出的平台决定.这是因为Web(应用程序)开发是一个复杂的事情,可以在各个层面(特别是在MS世界之外)解决.
我对你提到的W3School没有足够的了解,但乍一看,它们看起来会教你许多基本的前端技术:HTML,XHTML,Javascript,CSS等.这不错,会为你提供坚实的基础.但是,Web开发通常不会在这个级别上完成,因为对于大型应用程序而言,它太繁琐且不灵活.而且你会完全错过后端/数据库技术.
然后有平台(我猜这是大多数)有一个模板方法.您可以在HTML文件中混合使用HTML和编程代码(Python,Perl,PHP,...),然后由引擎处理该页面和业务逻辑,以生成用户界面和事务的最终HTML数据库的代码.Django和TurboGears是这方面的着名Python代表,Ruby on Rails可能是目前最大的名字.但是还有很多其他的(Scala/Lift怎么样?),所以值得花时间看看你最喜欢哪一个.他们通常在数据库处理方面做得很好.在UI端,您仍然可以更改页面.
在这种情况下,有些平台试图从嵌入代码的HTML转向纯粹的程序化方法.您只需编写代码并使用给定平台的特定API.以某种方式"编译"您的项目将生成您必须在运行时环境中部署的所有必要内容.我认为Google的GWT和Eclipse RAP就是这样的方法,如果你认为,在Java中有梦想和呼吸,这可能适合你.
当您需要类似桌面的用户界面时,浏览器中的页面更改(Web体验中最具破坏性的部分)不再足够好时,另一种方法很有趣.攻击这种方法的方法是创建" 胖网络客户端 ",内置大量交互逻辑,通常使用Javascript,并使它们与服务器后端交互,仅用于使用Ajax,REST或RPC协议进行必要的数据传输.客户技术的候选人是例如qooxdoo或Dojo.在服务器端,您仍然可以使用您熟悉的任何技术(从RoR到Servlet等).如果我有我的选择,我会选择qooxdoo作为前端,并选择Erlang/CouchDb作为后端.
你已经特别询问了教程,我没有提到很多.我想要做的就是你选择的任何东西,你很可能会在这项技术上花费相当多的时间和精力,因为它们都很深,并且会坚持一段时间.在评估期间,您还将检查给定平台的教学材料(不要忘记在线视频 - 这些日子它们很大),但这不可避免地具体.AFAICS,对网络编程没有"一般性介绍".