作者:義忠仁倫冧沫Bob | 来源:互联网 | 2023-09-01 11:37
做前端事變一段時間了,也寫了不少的項目。然則倏忽彷佛將近失去了興緻。美工、背景、項目經理、測試等職員多層夾攻。美工說就這麼設想,你就得完整按着來。背景說這個需求做不了,得那樣做,因
做前端事變一段時間了,也寫了不少的項目。然則倏忽彷佛將近失去了興緻。美工、背景、項目經理、測試等職員多層夾攻。美工說就這麼設想,你就得完整按着來。背景說這個需求做不了,得那樣做,因而已做好的頁面推倒重來。測試說,如許做更相符群眾習氣,如許的流程才準確。因而,一遍各處改,沒有話語權。就如許興緻被逐步消逝着…。直到我看到了這本書。興緻的小火苗又最先突突的竄了起來.
這本書把前端構造師,比方成修建工程師。都在一層層的搭建着自身的產物。這個產物有着完美的可遵照的體系設想、有着流通運轉的事變規劃、有着延續優化的監視跟進。設想一下,我們親手編碼(繪製)的產物,人人都能看到,能為人人的生涯帶來些許的變化,以至為之讚歎,那將是件何等優美的事變。
那什麼是前端架構呢?
本書作者定義為:前端架構是一系列東西和流程的鳩合,旨在提拔前端代碼的質量,並完成高效、可延續的事變流。
作為一位前端架構師,你的事變是不停地探究和評價新的手藝、平台、要領和框架。世界上沒有一刀切式的解決方案,而前端架構師的使命恰是將項目的需求與前端開闢的實際情況相結合。
那怎樣來完成一個好的前端架構呢?
本書作者以為應繚繞四个中心來事變:
(1)代碼
(2)流程
(3)測試
(4)文檔
一、代碼
作為前端架構師,你須要評價標記發生的歷程。你對內容的遞次、運用的元素和 CSS 類名有多大的控制權?這些元素在未來修改起來會有多大難度?模板是不是易用,或許是不是只要後端開闢職員才變動?以至,你的標記滿是基於模板體系的嗎?你可以經由過程體系做出變動,照樣須要手動處置懲罰?經由過程回覆這些題目,來不停優化自身的代碼。同時要意想到我們的事變不是純真地完成,某個頁面,而是設想全部體系。
經由過程BEM準繩模塊化一個簡樸的導航,代碼以下:
1、模塊化CSS有幾種要領:
(1)OOCSS(Object-Oriented CSS,面向對象的 CSS)要領:
OOCSS(http://oocss.org/)有兩個重要的準繩:星散構造和表面,以及星散容器和內容。
(2)SMACSS(Scalable and Modular Architecture for CSS,模塊化架構的可擴大 CSS)要領
Title 1
...
...
(3)BEM(Block Element Modifier,塊元素修飾符)要領
包含塊名、元素和修飾符。BEM 運用異常簡約的商定來建立 CSS 類名,而這些字符串可能會相稱長。元素名加在雙下劃線后(比方 toggle__details),修飾符加在雙橫杠后(如 toggle__details–active)。這裏的 details 是元素,active 是修飾符,這個商定使得 CSS 類名異常清楚。運用雙橫杠是為了防止塊名被殽雜為修飾符。
Title 1
2、css採用準繩:
(1)星散容器和內容
(2)辨別規劃與組件的角色和職責
(3)在標記上運用單一、扁平的選擇器
(4)運用其他準繩,比方單一職責準繩、單一款式泉源、內容修飾符
單一職責準繩:劃定你建立的一切東西必須有單一的、高度聚焦的來由。你應用到某個選擇器里的款式應當是為了單一目的而建立的,而且可以很好地完成這個目的。
單一款式泉源:在一個模塊化設想中,任何組件的設想必須由組件自身決議,而不該當被它的父類名限定。
組件修飾符:讓你可以定義一個組件在多個差別情況下的多種變化。
3、js的準繩
(1)堅持代碼整齊:運用JS Hint
(2)製造可復用的函數
二、流程
(1)事變流
(2)使命處置懲罰流
三、測試
(1)單元測試
(2)機能測試
(3)視覺復原測試
四、文檔
(1)款式文檔
運用SassDoc來自動化天生sass文檔。
(2)圖形庫
運用Brad Frost 的原子設想準繩(http://patternlab.io)來天生圖形庫
推荐阅读
-
本文详细解读了CSS中的position属性absolute和relative的区别和用法。通过解释绝对定位和相对定位的含义,以及配合TOP、RIGHT、BOTTOM、LEFT进行定位的方式,说明了它们的特性和能够实现的效果。同时指出了在网页居中时使用Absolute可能会出错的原因,即以浏览器左上角为原始点进行定位,不会随着分辨率的变化而变化位置。最后总结了一些使用这两个属性的技巧。 ...
[详细]
蜡笔小新 2023-12-12 13:16:49
-
本文总结了Java中日期格式化的常用方法,并给出了示例代码。通过使用SimpleDateFormat类和jstl fmt标签库,可以实现日期的格式化和显示。在页面中添加相应的标签库引用后,可以使用不同的日期格式化样式来显示当前年份和月份。该文提供了详细的代码示例和说明。 ...
[详细]
蜡笔小新 2023-12-14 18:18:57
-
-
本文介绍了在VScode中设置格式化文档换行或不换行的方法,包括使用插件和修改settings.json文件的内容。详细步骤为:找到settings.json文件,将其中的代码替换为指定的代码。 ...
[详细]
蜡笔小新 2023-12-14 17:15:38
-
本文介绍了Java实战之电影在线观看系统的实现过程。首先对项目进行了简述,然后展示了系统的效果图。接着介绍了系统的核心代码,包括后台用户管理控制器、电影管理控制器和前台电影控制器。最后对项目的环境配置和使用的技术进行了说明,包括JSP、Spring、SpringMVC、MyBatis、html、css、JavaScript、JQuery、Ajax、layui和maven等。 ...
[详细]
蜡笔小新 2023-12-14 15:52:03
-
本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ...
[详细]
蜡笔小新 2023-12-14 14:37:52
-
本文介绍了使用Java编程语言获取服务器硬件信息和磁盘负载率的方法。首先在远程服务器上搭建一个支持服务端语言的HTTP服务,并获取服务器的磁盘信息,并将结果输出。然后在本地使用JS编写一个AJAX脚本,远程请求服务端的程序,得到结果并展示给用户。其中还介绍了如何提取硬盘序列号的方法。 ...
[详细]
蜡笔小新 2023-12-14 13:56:20
-
本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ...
[详细]
蜡笔小新 2023-12-13 20:01:16
-
本文概述了JNI的原理以及常用方法。JNI提供了一种Java字节码调用C/C++的解决方案,但引用类型不能直接在Native层使用,需要进行类型转化。多维数组(包括二维数组)都是引用类型,需要使用jobjectArray类型来存取其值。此外,由于Java支持函数重载,根据函数名无法找到对应的JNI函数,因此介绍了JNI函数签名信息的解决方案。 ...
[详细]
蜡笔小新 2023-12-09 17:55:40
-
本文介绍了关于Java异常的八大常见问题,包括异常管理的最佳做法、在try块中定义的变量不能用于catch或finally的原因以及为什么Double.parseDouble(null)和Integer.parseInt(null)会抛出不同的异常。同时指出这些问题是由于不同的开发人员开发所导致的,不值得过多思考。 ...
[详细]
蜡笔小新 2023-12-09 17:11:45
-
文章翻译整理自NikolaMalovic两篇博文:Task.WhileAllAwaitabletaskprogressreporting当Task.WhenAll遇见 ...
[详细]
蜡笔小新 2023-10-17 18:31:08
-
Hello.js 是一个用于连接OAuth2服务的JavascriptRESTFULAPI库,如Go ...
[详细]
蜡笔小新 2023-10-17 18:07:55
-
移动传感器扫描覆盖摘要:关于传感器网络中的地址覆盖问题,已经做过很多尝试。他们通常归为两类,全覆盖和栅栏覆盖,统称为静态覆盖 ...
[详细]
蜡笔小新 2023-10-17 12:41:17
-
引言OAuth2.0是一种应用之间彼此访问数据的开源授权协议。比如,一个游戏应用可以访问Facebook的用户数据,或者一个基于地理的应用可以访问Foursquare的用户数据等。 ...
[详细]
蜡笔小新 2023-10-17 11:24:37
-
蜡笔小新 2023-12-13 11:03:10
-
本文介绍了Java中集合的遍历方式,重点介绍了for-each语句的用法和优势。同时指出了for-each语句无法引用数组或集合的索引的局限性。通过示例代码展示了for-each语句的使用方法,并提供了改写为for语句版本的方法。 ...
[详细]
蜡笔小新 2023-12-12 15:34:14
-