Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

338 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

beaconjs

###灯塔 有人或许觉得NODEJS 是一门简单的语言,在我看来 NODEJS 是一门涉及更多学问知识的语言,它是一门上乘武学,且若不尽全掌握亦不可写好项目,即使有11年的JS开发经验,依然不敢轻易 言懂,编写了同步开发已有多年,在nodejs的异步开发思想中亦会有很多涉及异步无法处理的事情,而在单进程模式下开发却也需处处留心,因为任何一个 错误亦可造成整个服务器停止工作,或者是溢出,或因存在没有返回的空等,或有不合理的异步操作。

js 在语言层上实在是太自由灵活了,我曾言为了创建一个继承的类可有不下20种写法,而在大型项目开发中,如无任何约束和规范,每个人如若有不同的开发和编码习惯亦将项目弄成相当混乱,不易维护项目亦不可协同工作。

或许我在nodejs中尝到了异步的甜头,然准备用其在正式项目上或许有更多的担心,每每想起对nodejs亦爱亦恨,然我一直在等一直在观望,js必须有更清新的界限和标准,直到es2017,恩 是时候整理一下代码了,为了更好的开发nodejs服务程序。

在开发此框架之前,我一直在纠结使用原生js 还是 ts, 一直纠结此事,后来听取各方意见以及斟酌再三,还是决定使用 ts 来开发,还是那句话 js 灵活得让人无从下手,我需要更多的规则和约束,在保证灵活程度不受大损的情况下让代码编写变得更有规可循。

###beaconjs 是一个全以 typescript 开发的nodejs web mvc开发框架

在开发 beaconjs 框架之前,我还是做了很多的考量,对于我来说框架不是工具,更是一种约定,当然亦需对代码精雕细琢,所有的代码应该在可接受的合理范围内,我个人不喜欢钩子程序或者补丁这种让人困惑或不易维护代码的实现方式,大体上还是偏向我们已经习惯了的同步编程写法。 在此 我也要感谢微软的 typescript 出现,因为有很多代码规范已经不需要我在为其做约定了,自己做的约定也是人微言轻不被认同。 开发一个 框架 对于框架开发者来说应该是很多议案的选择结果,它不仅仅是一份代码的实现,更是技术实现的合理选择,亦或会为了效率摒弃一些实现,它不是保罗万象的,是一些抉择。

注:在以往框架开发中 我依旧保留着一个约定,充分利用IDE的提示功能,尽量满足IDE的提示标准,而不选择IDE无法提示的实现方式。

###sdopx模板引擎

在为我的框架选择 模板引擎的时候,我已仔细对 ejs jade 等模板引擎都做了半年左右的深入了解,我也不是兴致使然自己来折腾一个模板引擎,ejs在大项目开发中却有一些不利于大型项目编写的情况,更像是混编模式,然jade 在编写习惯上如果项目比较复杂难免会出现jade中夹入原生html代码的情况,看起来甚是不舒服。 无奈情况下 只得自己动手丰衣足食,然要让人接受一个新的模板引擎亦不是那么简单事情,这个决定很艰难。 既然 要动手开发 那么就得要做得更好 否则还不如不做,在效率上需不输ejs 应该是一门有语义语言而非简单替换,在功能上 至少要满足嵌套模板,以及方便灵活扩展。

About

灯塔

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages