【轻聊-前端】编程是什么?

https://www.bilibili.com/video/BV1TF411t78K?spm_id_from=333.999.0.0一、不知缘由,没有头绪

二、不懂概念,不会用法

积少成多

笔者计算机专业出身,但前端开发不在课程范围,算是自学一点皮毛,刚参加工作时,公司电脑还没到位,没法干活,确切地说也不会,就按照主管的吩咐坐在导师旁边看了两天,提的第一个问题就是:“这么多代码都是你写的?你怎么知道哪里是什么呢?”

导师对我说:“这些是我一行一行写出来的,我自己的定义和设计,当然知道是什么了。”

所以,代码不管是一行、一百行、还是一万行,都是由开发者一个个敲出来的,都有其来由和目的,不必被代码量吓到,这是其一。

现实天然是程序

知道了代码是积少成多的,那么代码本身是什么?

代码是由计算机能够理解的语言写出来的东西,跟人能够理解自然语言一个道理,而且两种语言之间有着对应的关系,每一个熟练的程序员都会在编程的时候在脑海中自动地转换。

程序设计语言多种多样,每一种都有其擅长做的事情,普通的开发岗位不会要求一个人懂多种语言,会有所分工,比如:前端至少要掌握HTML、JavaScript、CSS,而后端要掌握Java、Go、Python之类的语言和数据库等。

但不论是什么语言,写出的程序都在做三件事:

数据存储、数据处理、数据传输

本系列文章就来跟大家分享一些使用JavaScript编写程序的知识。

问题来了,怎么写?探索怎么写,要先了解一件事情,什么是程序。

现实天然是程序,拿人一天的生活举例:

到点闹钟响起,起床——穿衣、洗漱——出门(如果有垃圾把垃圾带着) ——交通(有车的开车,没车的由路程及便利性决定是步行、单车、公交还是地铁)——早餐——上班——开会——搬砖/修bug——加班——下班——交通(同上班)——晚餐——娱乐/读书/锻炼…——玩手机——睡觉。

程序员的一天大体如此。

跟写好的一段计算机程序一样,一行行执行,一件件做。

那么这段描述用编程语言如何表达?它们有着怎样的对应关系?

对象:人

属性:性别、年龄、职业、所在公司等。

流程:起床、穿衣洗漱…

流程中的某些环节带着条件判断(有无垃圾、选择哪种交通工具)

方法:吃饭、搬砖。

编程就是这么个路子。

具体到写代码,该如何着手和处理呢?简单概括如下:

定义变量:当需要存储一个数据,不管是什么,数字、字符串、对象等,都可以定义一个变量。

定义函数:当需要执行某个动作,而且需要重复执行,就可以封装一个函数(或者叫方法)。

条件判断:当需要根据不同条件执行不同动作,就用到了条件判断。

绑定事件:当需要点击、滚动、触摸等得到反馈,就用到了事件。

操作DOM:当需要获取/操作网页上的元素,就用到了DOM。

简单吗?简单,但也不简单,那又复杂在哪里?

丰富的工具箱

为什么要写程序,“人的想法”加上“程序的本领”来满足日常需求。

需求是多种多样的,“巧妇难为无米之炊”,如果语言本身不具备那个能力,程序员又如何做到呢?

什么能力?譬如:

画图(CSS/SVG/Canvas),音视频(Audio/Video),地理位置(Geolocation),通知(Notification)…

先抛开特定场景的需求不谈,最常规的人机交互,也需要DOM/BOM这些浏览器提供的接口来做到。

故而,语言所具备的,多种类型的数据,每种类型所具备的属性和方法,繁多的特点、特性、API,都是为我们编写程序提供便利的,是丰富的工具箱。

面对这个工具箱,你可能惧怕太多东西一时无法记住,但当你需要的时候,又会庆幸它们的存在。

优雅的代码

我们做每件事情,都是从不会到会,到熟练,再到强大(规模上)、细致(细节质量)的。明白了怎么写程序,有什么“工具”可用,就是个能做事的程序员了,但离优秀的程序员还有距离。

如果你编码经历尚少,或许觉得故弄玄虚,但迟早会有所体会。

优雅的代码是什么?笔者认为,要综合考虑,而不只是“代码量少”、“实现巧妙”等。

组织性

说白了,就是文件的命名及存放,业界有不少做法,占比最大的是两种:

一、按文件类型,html、js、css,图片,每个大类里又可按照用途划分小类

二、按业务模块,首页、登录、个人中心等

当然,也可以将二者进行适当的结合。

合理的代码组织,能够使得一个大型项目的代码显得多而不乱,利于维护、查找问题,也利于团队协作。

可读性

有句话说得好——“代码是写给人看的,顺便给机器运行”。

给机器运行的代码只要没有语法错误,怎样都可以,但人不行,还有另一句自我调侃的话叫“我现在写的代码是干什么的只有上帝和我知道,再过两个月就只有上帝知道。”

这就很不好,没有任何一段代码是能够保证不再回头看、去调整,或者某一天交到别人手里维护和加工,如果不易读,是一件左右为难的事,继续用,该怎么写保持风格不变且不出问题,不用,代码冗余会增多,且可能越来越乱,不可收拾。

健壮性

也可理解为“适应性”,越健壮的代码,越能适应更多场景甚至状况,越少出问题,两个简单的例子,你的网页是否能够在iphone5和iphone12上都能良好展现,或者当页面图片加载失败/文件找不到,是否有备用措施来弥补,以使用户体验不会大打折扣。做好了这些,代码靠谱,人也靠谱~

扩展性

也可理解为代码的通用性、复用性,比如,网页换肤、根据用户的不同身份展示不同内容,在现有的模块当中持续地添加新的模块等。扩展性越好,迭代过程的成本就越低。

性能

编程领域的性能问题百说不厌,具体说就是代码的执行时间,体验是否流畅。

同一件事情用代码可以多种写法,除了“写对”之外,还要考虑是否够快,能否给用户的操作提供符合预期的反馈,多是细节,这里不赘述。

以上几点,如果做不到,程序也能正常运行,但做得到,对自己持续的编码,对用户体验,对团队协作,都是很有利的,也会给他人留下好的印象。

代码之外的工具

如果只写页面,三驾马车足够,但随着技术迭代,需求变更,项目规模等变化的发生,有追求的程序员们动用自己的聪慧和技术做出很多更利于现代开发的工具,比如:npm(包管理器)、gulp(任务处理工具)、webpack(模块打包工具)等,当然,还有丰富的组件库和流行框架,起初这并不是一名开发者的必备技能,但它们的确因为提供了便利而被广泛使用,久而久之成为标配,你可以不全学,但不能都不会,这就成了编程语言之外我们需要学习的东西。

上述的内容,构成了一名前端开发者在当下需要掌握的技能的主要部分。

总结

到这里,你应该大体看到了编程是什么样子,它不难,但对于初学者足够复杂,需要,也仅仅需要投入足够多的时间就能征服。

后面我们一起征服~

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,039评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,426评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 165,417评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,868评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,892评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,692评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,416评论 3 419
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,326评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,782评论 1 316
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,957评论 3 337
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,102评论 1 350
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,790评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,442评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,996评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,113评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,332评论 3 373
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,044评论 2 355

推荐阅读更多精彩内容