前言

要构建动态网站,我们必须掌握至少四种语言:

  • HTML 用于网页结构
  • 用于布局和设计的 CSS
  • JavaScript 用于交互
  • 业务规则或动态驱动数据的语言

此外,还有用于持久存储的 SQL、用于会话和缓存的 Memcache、用于 许多 不同的内容管理系统。我们还应该考虑在构建 Web 应用程序时与 OpenID、Facebook、Twitter、OpenSocial 进行交互,以使其变得有趣。

总而言之,简直是一团糟!

如果您考虑两个目标:

  • 向孩子们教授网络开发
  • 作为一个团队保持高效

问题

存在哪些高级系统可以统一 HTML + CSS + Javascript + (在此插入高级语言, ,首选 PHP)?


背景

  1. 我是一名软件工程师,拥有 15 年以上的项目领导和开发经验,使用 Broadvision、Autonomy、Enterprise Java 和 Oracle 等技术。

近年来,我专注于使用 Drupal 或 PHP 框架(例如 CakePHP)开发社区网站。我 喜欢 Web 开发并享受所涉及技术之间的阻抗不匹配。我仍然不可避免地得出的结论是 一定会有更好的办法.

  1. 我是两个儿子(13 岁和 9 岁)的父亲,虽然我不希望他们成为程序员,但我希望他们将计算机理解为不仅仅是游戏机。我喜欢激励他们稍微修改一下网络开发来表达自己。

每当我向他们展示零碎的东西时,我都希望他们有一个工具集,可以让他们在周日下午的一两个小时内创建“有趣”的结果。

有帮助吗?

解决方案

"链接 是一种新的编程语言,旨在使网络编程变得更容易。。。Links 通过为所有三层提供单一语言来缓解阻抗失配问题。系统为每一层生成代码;例如,将一些代码翻译成浏览器的 Javascript,一些翻译成服务器的字节码,还有一些翻译成数据库的 SQL。”

起初我不打算发布这个,因为它是一个研究项目,而不是一个生产系统;但所有这些回答都说“事情就是这样,处理它”,都要求有一个反例。

其他提示

总吨位 在某种程度上,它正在成为一个高级工具包,让您可以编写 Java 来生成 Javascript。

Web 编程本质上是一门多学科的技术。

造成这种情况的主要原因是关注点分离……HTML、CSS 以及 JavaScript、SQL 等之所以没有以一种语言混合在一起,是因为它们各自有不同的目标、警告、陷阱和优势。

您能想象尝试调试一个将 SQL、CSS、JavaScript 和 PHP 代码混合在同一源文件中的网站吗?您可能已经不幸这样做了。可悲的是,实际上有数千个网站都是这样编写的,尝试调试或添加这种混乱的表示、数据和结构融合完全是一场噩梦。

总而言之,一塌糊涂!应该如何向孩子们讲网络开发?

我认为最重要的是教授编程基础知识并让它们坚持下来。变量、逻辑、 指针, 、内存管理、算法、数据结构等。

当您掌握了编程基础知识时,就可以轻松地使用多种语言、学习新语言,并且可以轻松地与时俱进。对于像网络编程这样不断发展和基于趋势的事物来说,这是一项非常宝贵的技能。

在我看来,刚接触编程的人应该从较低级别的语言开始,例如 C。人们应该学习编程的内在、基本概念,并且应该在学习 PHP 或 Python 等高级语言之前了解幕后发生的事情。

我认为这种对编程教学的态度将产生培养更好的网络开发人员的效果,并提供进入壁垒,淘汰那些没有兴趣或智力的人。我认为这种态度的结果将是更好的开发人员、更好的软件以及最终更强大的语言和工具。

应该如何向孩子们教授网络开发?

网络开发领域的一群孩子使我们的职业退化,因为现在几乎每个人都称自己为程序员,而我们却越来越难与他们保持距离并获得体面的报酬。

许多语言和技术需要掌握?这是一件好事。让加入开发者行列有一定的准入门槛。

添加:通过以下评论,我可以看到我还没有完全清楚地表达自己。我没有透露年龄,无论是10岁、30岁、50岁还是80岁。这完全取决于态度。一个人是否理解并接受这样一个事实:这个职业不仅仅是在某些设计师或 CMS 中用鼠标移动控件。有很多知识需要学习,包括计算机科学基础知识、算法、数据结构、数据库、架构、可扩展性、维护、性能、可伸缩性、可用性、营销等等,这些知识属于专业软件开发人员的工作坊。我一个人对那些一无所知,又不采取行动去教育自己,努力变得越来越精通,他们不属于这个职业。并且让这个观点带有偏见。

我认为您会得到的最接近的是.NET。许多语言都有许多框架,但据我所知,没有一个框架可以处理所有事情。除此之外,你不能试图让孩子们相信编程就像在公园里散步一样。这是一个艰难的职业,需要大量的学习和坚持。我们所使用的技术今天还存在,明天就会消失。

如果你仔细想想,编程与木工或航空没有什么不同。几乎您选择的任何职业都需要您学习很多不同的东西,以便更好地做好自己的工作。

您应该如何向孩子们教授网络开发?哇,这真是一个棘手的问题。如何教授他们外科手术、知识产权法或土木工程?或者就汽车机械、管道或总承包而言?

你有没有想过放一盘芝麻街磁带?

艾莫不喜欢你贬低他的职业。

软件行业正遭受着不合格人员的困扰,他们除了创造质量低劣的产品外什么也不做,同时也使这个行业远离了真正的工程学科。这不是需要认证的事情。看在上帝的份上,不要“教”任何人软件开发。向他们解释,只有多年的经验和对过去和当前技术的丰富知识才能创造出出色的软件。你能做的最糟糕的事情就是引入另一个半生不熟的开发人员,为与他们一起工作的其他人创造工作。告诉他们要受教育。我知道这可能不是您想听到的答案,但我希望有人阅读。

我认为 Web 开发的问题在于它最初并不是为当今的使用而设计的。我们使用 HTML+CSS+JavaScript 以及生成它的任何服务器端技术在浏览器内构建富客户端应用程序。是的,它确实有效,但很痛苦,尤其是那些烦人的浏览器不兼容问题。Flash和Silverlight的存在证明了这一点。它们让您可以在浏览器内使用一种技术构建应用程序。不过,内容需要插件的缺点是显而易见的。

语言是您最不用担心的。他们所处理的问题领域很复杂。使用不同的语言实际上使事情更易于管理,因为a)它使边界明确,b)可以针对领域优化语言。

编程(PHP/JS)和文档格式(HTML/CSS)是两个不同的东西。同时学习 PHP 和 JS 编程也会很困难。

一开始就应该关注客户端的 HTML 和 JS。然后你可以让他们编程 服务器上的 JavaScript 以及。这将使其成为一种编程语言,并且首先将重点放在 HTML 而不是 CSS 上。

一旦他们学习了 JS 和 HTML 的基础知识,您就可以教他们更广泛使用的服务器端编程语言(如 PHP、Ruby 等)和 CSS。

姜戈 可以带你了解它的清洁程度。它专注于生产力。教学并不比任何其他语言/框架更容易,但这样看:当教授这个工具时,您的学生充分了解它是多么容易 应该 是。在学习了 Django 之后,他们将永远不会接受 Javaservlet 或类似的噩梦。

看看欧巴: http://opalang.org/

这是一种新兴的网络开发技术。看起来很有前途。在过去的几年里,我做了很多 Web 开发,如果我必须做出预测,新的框架/语言/技术将成为 5-10 年内网站开发的主要方式,我会这么说将是欧帕。

文档很棒,社区很棒,教程和对项目团队提出的问题的响应都非常好。总体而言,他们似乎在开发这个似乎无与伦比的新框架时注重细节。

很多技术掌握并不是好事。无论精英主义者怎么说,我们都需要一个 Visual Basic for Web。

您需要不同的语言来实现不同的目的。在大多数 Web 应用程序中,实际上发生了很多事情,因此您需要不同的语言和解决方案。

如果目标是统一一种语言,你就可以做到。您可以在服务器上使用 Javascript,然后使用以下命令构建页面 document.createElement() 并将样式直接应用到 styles 财产。在服务器上,使用 Javascript 将数据直接存储在文件中。

显然这不会有那么好的结果。HTML 并不完美,但它如此普遍是有原因的——它的功能简单而出色。CSS 既复杂又过于简单,但定义可重写规则来表达设计的基本思想是合理的。SQL 有时可能很难理解,但以这种方式表达数据库查询是富有表现力的,而且实际上效果很好。

话虽这么说,我并不是说存在或应该有一种架构。不应该有。每个项目都应该使用符合其要求的架构。

在你的下一个项目中尝试简化:你真的需要数据库吗?您能否使用 GWT、Applet、Flash 或 .NET 之类的工具来组合视图层以进行简化?您真的需要在浏览器中提供您的内容(这会引入 CSS、HTML 和 Javascript 的复杂性),还是您可以只编写一个应用程序?

我认为你的方法可能需要重新考虑。我认为,就这样吧,但我认为这种顺序可能会更好。

首要任务: (无特定顺序)

  • 培养解决问题的能力
  • 团队高效

下一个:

  • 基本编程技能(PHP、Python 等)

在他们知道如何作为个人和团队解决问题后,他们可以转向具体问题,例如:

  • 客户端/服务器模型
  • 标记(HTML、XHTML、XML 等)
  • 样式(CSS)
  • 客户端脚本(JavaScript / jQuery)
  • 服务器端脚本(PHP、Ruby 等)

一点一点地积累他们对所涉及内容的了解,而不是立即跳入深渊——他们很快就会不知所措。

此时您可以开始介绍文件 I/O 和数据库等内容。

这将为他们提供相当全面的技能。从这里他们可以真正开始学习。

此外,可能还需要处理用于持久存储的 SQL、用于会话和缓存的 Memcache、内容管理系统的 API、OpenID、Facebook、Twitter、OpenSocial 等。构建任何有趣的东西。

这些本身就是一个完整的主题,你无法将它们全部咬断。特别是如果你把这些人从 0 开始。在你能够构建一些有趣的东西之前,你必须学会​​构建一些平凡的东西。

HTML5 可能会更符合您正在寻找的内容,而不是 Flash 或 Silverlight,但它还没有完全实现......尽管支持正在建立。

婴儿学步,奥拉夫——如果这是的话 矩阵 您可以一次性下载所有信息,但我们还没有做到这一点;-)

目前和不久的将来,Web 开发是许多不同技术的协同作用,共同提供有趣的用户体验。

好吧,这就是我的 2 美分

Web 开发的多学科性质是使其工作充满乐趣的原因之一, 尤其 在团队环境中。

为了作为一个团队良好地工作,您自然会与一群具有各种专业知识的人聚集在一起,从 UI/图形人员到 DBA 和系统管理员。即使在团队的单层(例如后端程序员)中,每个人通常都专注于不同的领域,例如,有些人可能在 UI 方面拥有更多经验,而另一些人则在数据方面拥有更多经验。

与在一个由 10 个 Java 程序员组成的房间里工作,他们都在开发一些中间件应用程序相比,我每天都会接受这种变化。

如果您只是想教他们编写动态网站,请让他们学习 w3schools.com 上的 HTML 教程,一旦他们完成,就可以为自己找到一个看起来不错的样式表,他们可以将其包含在内并使用 PHP 设置它们。这会让他们把启动和运行作为一种爱好,如果他们想做更多,他们可以开始拼凑额外的知识,比如 CSS 和 JavaScript。

Ruby on Rails 在统一所有这些方面取得了很大的进展,但对于 CSS 来说,它让您感到冷落(尽管可能有一些 RoR 框架使 CSS 过时,但我认为您还有另一种标记语言),并且您仍然需要 Javascript(尽管它确实为您编写了很多 Javascript 以及所有数据库代码)。

另一方面,关于你的孩子:编程是程序员的事。在周日下午,要在几个小时内将一些东西组合在一起,您需要了解一个框架,并购买一些插件,然后无需太多工作即可将所有内容安装并移动。像 Drupal 或 Joomla 之类的东西,他们出售模板(对于 Joomla,你可以购买数百个包)和插件来完成各种事情。当这失败时,您的孩子可能应该知道如何在 ODesk 上花 100 美元在您的框架上完成一些工作。如果你想成为一名程序员,学习编程是很好的选择。否则,最好了解雇用优秀程序员或购买优质预制组件所需的知识,并有足够的现金来做到这一点。

最后一点关于孩子:让他们玩电子游戏。无论计算机方面的未来如何,这是他们可以获得的最佳培训。视频游戏让您可以通过电脑进行调查、玩耍和放松。一旦掌握了这些,学习 HTML、CSS、Javascript 和一些应用程序堆栈就是小菜一碟。

角js 可能是一个选择。它适用于单页应用程序,在 Nodejs 堆栈上运行,并执行一些模板 JavaScript“魔法”。

示例(模板/代码):它将(通过自动生成的客户端-js)输入字段中的值绑定到标题(h1)。如果您在输入字段中输入内容,标题中的文本就会更新。而且你不必编写前端js。

  <input type="text" ng-model="yourName" placeholder="Enter a name here">
  <h1>Hello {{yourName}}!</h1>
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top