亿恩科技有限公司旗下门户资讯平台!
服务器租用 4元建网站

先熟悉一下编程语言界限再去编写代码吧!

把每个编程语言当作是一个集合,从语言设计到编程格式,它们一定是含有交集的。为了解决因“交集”而带来的代码编程错误,本文详细分析了HTML、CSS、JavaScript、Server-side Languages和SQL之间所存在怎样的界限。

如今开发者有很多种途径去解决编程问题,不管是利用大量的类库还是各种各样的技术工具。当然了,随便选择一些错误的工具导致的代码错误也是工作里最头疼的事情。另外总结出,不了解工具与工具之间、语言与语言之间的界限所带来的风险和选错工具带来的风险是一样的。下面这几个常用的构建Web App 的工具,每一个都有特定的使用目的。

HTML:为编写的内容提供语义标记。

CSS:将设计风格从标记里区分出来。

JavaScript:提供表现行为。

Server-side Languages:管理商业逻辑。

SQL:对 RDBMS 数据存取和数据操作有很大的帮助。

下面就来分析一下不同的技术之间存在哪些界限和互动点,以及它们是怎样给开发者在工作当中制造麻烦的。

HTML JavaScript 之间的界限

尽量避免将HTML 放入 JavaScript 字符串里,不然出现的结果可能会像这样:

先熟悉一下编程语言界限再去编写代码吧!

值得注意的是,如何在for 循环语句下面生成一个 HTML 行,然后设置成一个称之为 carRow 的变量。将 HTML 放入 JavaScript 字符串里,这样就能更灵活的将 HTLM 插入在网页上,但应该标记为本地 HTML 。当选择一个模板解决方案的时候,需要寻找一个简单的、较旧的 HTML 作为模板来源。 KnockoutJS AngularJS 模板都是使用这一方法的。

如果你想把HTML 储存在 .js 文件里的话,必须三思而后行,因为 JavaScript 是典型的用来储存标记的错误工具——也就是说,保持本土化没什么意义可言了(代码颜色、语法检查等等)。

另一方面,避免将复杂的JavaScript 放在 HTML 里的 DOM 基础上:


有的人直接把JavaScript 放在 HTML 里面,但是这种通过直接插入行为到标记里的方法使得问题变得更为混淆,同时还消除了缓存和重复使用的机会。

这种低调的JavaScript 行为的确降低了上述的问题出现几率,但是新的框架像 Knockout Angular 是可以将 JavaScript 推到 HTML 标记里的。不过在 HTML 里简单声明一下标记还是有好处的,因为当绑定比较简单的时候标记很容易被发现,并具有可读性。但要小心,涉及到很多简单声明绑定的时候, JavaScript 属于 .js 文件, HTML 属于 .html 文件。

HTML SQL 之间的界限

这里有两个简单的案例:忽略了数据和HTML 之间的重要界限所导致的现象。


关系型数据库应该包含原始规范化数据,这样的数据也是多用途的。因此,存储HTML DB 或注入 HTML 在查询结果里,如上所示都是有问题的。它将整个演示和数据存储在一起使得重复使用变得很困难。

内容管理系统是一个常见的问题,在这里用户必须能够存储和管理在数据库里的HTML 。就相当于利用数据重复使用和数据规范化来换取最终用户管理权。除此之外,应该最大限度的避免混合表示和混合数据,因为它们会分离关注点,必须第一时间处理掉。

HTML CSS 之间的界限

HTML CSS 之间的“过结”相对简单,只要避免做这样的事就行了:


人们经常将设计风格放入线上的HTML 里,但是这样会把语义标记和风格搞混淆。分离关注点的同时还消除了缓存和重复使用 CSS 的机会。 DRY 原理在这里比较适用:如果你想把一个风格使用在多个点上,那就需要事先声明这个风格是在一个单独的样式表里的。

SQL Server-side Language 之间的界限

利用一个服务器端语言来创建高层次的动态SQL 是很容易的,就像使用 C# 字符串生成 SQL 语句一样简单,但是存储的程序和 ORM 通常会提供一个更安全、更优雅的方法来生成动态的 SQL 。编写动态 SQL 字符串的同时也打开了通往“ SQL 资料隐码攻击漏洞”的大门,并且取消了 DBA 管理和提高查询性能的机会。含有 SQL 字符串的 App 在运行时也存在很高的风险,尤其是当模式发生变化的时候。 ORM 向数据库提供增强型的类型接口,可是当模式不能够和现有的数据库查询同步的时候,这些数据库就无法编译了。

JavaScript Server-side Language 之间的界限

在服务器上编写动态JavaScript 字符串,会出现这样的情况:


这是误用工具所出现的最常见的现象:使用一个Server-side Language 生成动态的 JavaScript ,大多数情况下 JavaScript 应该保留在 .js 文件里,从服务器里返还出来的 JSON 可以提供更多的活力。

所以在你很投入的写出下一行代码的时候,最好考虑一下你离这些编程语言的边界是不是很近?或者说靠哪一边更近?热爱清洁代码的程序员应该努力保持本地化:文件扩展名在技术方面应该是一个很好的指示器。

保持本地化

本地化的重要性不只是针对于JavaScript ,当你发现在保持本地化的同时没什么取舍可选的时候,你只能和字符串较劲了。不过这其中的底线是,避免通过字符串把一种编程语言编写在另一种编程语言或者是格式里。不过目前在比较流行的编程语言里,解决这样的问题首先要考虑到动态化,并利用类库来生成这样的编程格式。要想通过字符串创造这么多东西就需要程序员同时理解两种语言之间的界限。所以,一旦你发现一个文件里有两种编程语言的话,最好先考虑如何使用更好的、更特殊的方法去消除其中的一个编程语言。

河南亿恩科技股份有限公司(www.sdyiwande.com)始创于2000年,专注服务器托管租用,是国家工信部认定的综合电信服务运营商。亿恩为近五十万的用户提供服务器托管、服务器租用、机柜租用、云服务器、网站建设、网站托管等网络基础服务,另有网总管、名片侠网络推广服务,使得客户不断的获得更大的收益。
服务器/云主机 24小时售后服务电话:0371-60135900
虚拟主机/智能建站 24小时售后服务电话:0371-55621053
网络版权侵权举报电话:0371-60135995
服务热线:0371-60135900

1
2
分享到: 责任编辑:阿柳

相关推介

共有:0条评论 网友评论:

验证码 看不清换一张 换一张

亲,还没评论呢!速度抢沙发吧!
亚洲小鸟酱交av在线在线观看视频黄色高中一级特黄大片在线观看一级做a爰片久久毛片诊所妇科偷窥tube中文字幕无码在线播放在线品一本大道高清精中文字幕 欧美 日韩亚洲性爱电影在线观看一二不卡视频欧美日韩一本岛道视频在线观看在线观看国产精品白丝亚洲中文无码2023中文字幕在线观看线人在线播放AⅤ侠COm中文字幕免费在线视频中文字幕在线免费视频