1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > css后代选择器可能的错误认识 有人说现在前端入门门槛越来越低 – CSS – 前端

css后代选择器可能的错误认识 有人说现在前端入门门槛越来越低 – CSS – 前端

时间:2022-09-13 12:08:33

相关推荐

css后代选择器可能的错误认识 有人说现在前端入门门槛越来越低 – CSS – 前端

1、前端介绍

前端,也称为“客户端开发”,简单来说,你可以在应用程序或网站的屏幕上看到的所有内容都属于前端。让大家考虑一个现实的例子:你正在访问的网站。内容设计、图像、段落和线条之间的间距,左上角的公司徽标,以及右下角的小通知按钮——所有这一切都是前端。

2、前端技术包括哪些?

前端开发是创建Web页面或app等前端界面呈现给用户的过程,通过HTML,CSS及JavaScript以及衍生出来的各种技术、框架、解决方案,来实现互联网产品的用户界面交互 。它从网页制作演变而来,名称上有很明显的时代特征。在互联网的演化进程中,网页制作是Web1.0时代的产物,早期网站主要内容都是静态,以图片和文字为主,用户使用网站的行为也以浏览为主。随着互联网技术的发展和HTML5、CSS3的应用,现代网页更加美观,交互效果显著,功能更加强大。

2.1、HTML

掌握HTML是网页的核心,是一种制作万维网页面的标准语言,是万维网浏览器使用的一种语言,它消除了不同计算机之间信息交流的障碍。因此,它是目前网络上应用最为广泛的语言,也是构成网页文档的主要语言,学好HTML是成为Web前端开发人员的基本条件。HTML是一种标记语言,能够实现Web页面并在浏览器中显示。HTML5作为HTML的最新版本,引入了多项新技术,大大增强了对于应用的支持能力,使得Web技术不再局限于呈现网页内容。随着CSS、JavaScript、Flash等技术的发展,Web对于应用的处理能力逐渐增强,用户浏览网页的体验已经有了较大的改善。不过HTML5中的几项新技术实现了质的突破,使得Web技术首次被认为能够接近于本地原生应用技术,开发Web应用真正成为开发者的一个选择。HTML5可以使开发者的工作大大简化,理论上单次开发就可以在不同平台借助浏览器运行,降低开发的成本,这也是产业界普遍认为HTML5技术的主要优点之一。AppMobi、摩托罗拉、Sencha、Appcelerator等公司均已推出了较为成熟的开发工具,支持HTML5应用的发展。

2.2、CSS

学好CSS是网页外观的重要一点,CSS可以帮助把网页外观做得更加美观。

2.3、JavaScript

学习JavaScript的基本语法,以及如何使用JavaScript编程将会提高开发人员的个人技能。

2.4、Bootstrap

主流框架之一,Bootstrap 是基于 HTML、CSS、JavaScript的,它简洁灵活,使得 Web 开发更加快捷。

2.5、html5-boilerplate

该框架可以快速构建健壮,且适应力强的web app或网站。

2.6、Meteor

Meteor是新一代的开发即时web应用的开源框架,它能在较短时间内完成开发。

2.7、Semantic UI

基于自然语言有效原则的UI组件框架。

2.8、Amaze UI

国内首个开源HTML5跨屏前端框架产品系列,中文排版支持更优、本土化组件丰富。该产品系列中有专门针对移动端的HTML5混合应用开发框架Amaze UI Touch以及针对跨屏HTML5网页开发的Amaze UI Web。其中,Amaze UI Touch可以帮助开发者通过丰富的组件,快速构建出与原生APP相媲美的专属移动端的HTML5应用。

3、前端技术领域变化

3.1、Web组件化

基本上这就是未来。为什么?因为这些纯Web组件与框架无关,并且可以在没有框架或没有任何框架拼写标准化的情况下工作。因为它们没有JS疲劳,并且得到了现代浏览器的支持。因为它们的文件大小和消耗将是最佳的,并且VDOM渲染令人赞叹。这些组件提供了Custom Element,这是一个Javascript API,可让你定义新html标签,HTML模板以指定布局,当然还有Shadow DOM,它本质上是特定于组件的。在这个领域中知名的工具是Lit-html(和Lit-element),StencilJS,SvelteJS,当然还有Bit,它们是可重用的模块化组件,可以在任何地方直接共享,使用和开发。考虑组件开发时代的未来,以及模块化,可重用性,封装和标准化的原理,Web组件就是答案。

3.2、微前端

Serverless即“无服务器”架构,它试图帮助开发者摆脱运行后端应用程序所需的服务器设备的设置和管理工作,它由第三方云计算供应商负责后端基础结构的维护,同时以服务的方式为开发者提供所需的功能,例如数据库、消息、身份验证等。微前端的概念类似于微服务,它将前端应用拆分成一个个更小的更简单的能够独立开发、测试、部署的小块,在用户看来它依旧是一个独立的产品。前端业务在发展到一定规模后,需要一种能将业务化繁为简的架构。常用的微前端解决方案有single-spa、qiankun。微前端、Serverless目前都未出现大规模应用的情况,各大公司对此都处于探索阶段,两项技术稳步发展,期待未来大规模的应用。

3.3、微设计

布拉德·弗罗斯特(Brad Frost)提出的理论将Web应用程序的构成与原子,分子,有机体等的自然构成进行了比较,最后以具体的Web页面作为结尾。原子由分子组成(例如,文本输入+按钮+标签原子=搜索分子)。分子组成生物体。有机体位于布局模板中,该模板可以具体化为交付给用户的页面。Atomic组件的优势不只是通过模块化和可重用的组件来构建模块化UI应用程序。这种范例迫使你思考组成每个组件的角色和API。

3.4、Web组装

Web程序集将语言多样性带入Web开发中,以弥补JavaScript创建的空白。它被定义为“基于堆栈的虚拟机的二进制指令格式。Wasm被设计为可移植目标,用于编译高级语言(如C/C ++/Rust),从而可以在Web上为客户端和服务器应用程序进行部署。”埃里克·埃利奥特在他的文章中优雅地概述了该概念的好处:在wasm中实现对性能至关重要的内容,并将其像标准JavaScript模块一样导入。一种新语言:WebAssembly代码定义了以二进制格式表示的AST(抽象语法树)。您可以编写和调试文本格式,以便于阅读。对浏览器的改进:浏览器将理解二进制格式,这意味着大家将能够编译二进制捆绑包,压缩后的二进制包小于大家今天使用的文本JavaScript。较小的有效载荷意味着更快的传递。根据编译时的优化机会,WebAssembly的运行速度可能比JavaScript快!

3.5、封装样式和Shadow Dom

组件的一个重要方面是封装-能够使标记结构,样式和行为保持隐藏状态,并与页面上的其他代码分开,以使不同部分不会冲突,并且代码可以保持整洁。Shadow DOM API是其中的关键部分,它提供了一种将隐藏的单独DOM附加到元素的方法。Shadow DOM实际上已经被浏览器使用了很长时间了。您可以将影子DOM视为“ DOM中的DOM”。它是自己的隔离DOM树,具有自己的元素和样式,与原始DOM完全隔离。它允许将隐藏的DOM树附加到常规DOM树中的元素上。该阴影DOM树以影子根开头,可以与普通DOM相同的方式附加到所需的任何元素上。这样做的主要目的是,大家不需要为类使用名称空间,因为不存在名称冲突或样式溢出的风险。这就是Web组件样式进行真正封装的解决方案。

3.6、TypeScript接管前端

最近的每次交谈都听起来好像TS正在接管前端开发。据报道,有80%的开发人员承认他们想在下一个项目中使用或学习TypeScript。尽管有缺点,但TS代码更易于理解,实现更快,产生的错误更少。想重构你的React应用程序并与TS一起使用吗?去吧。想逐步开始吗?使用Bit之类的工具逐步将你的应用程序中的组件重构为TS,并使用React-Typescript编译器独立于应用程序构建它们。TypeScript,它是有类型定义的 JavaScript 的超集,包括 ES5、ES5+ 和其他一些诸如反射、泛型、类型定义、命名空间等特征的集合,为了大规模 JavaScript 应用开发而生。复杂软件需要用复杂的设计,面向对象就是一种很好的设计方式,使用 TypeScript 的一大好处就是 TypeScript 提供了业界认可的类( ES5+ 也支持)、泛型、封装、接口面向对象设计能力,以提升 JavaScript 的面向对象设计能力。市面上的框架也对 TypeScript 提供了非常好的支持。React 对.tsx 支持非常好,比如偶在 Midway controller 里支持 tsx 写法,这是非常大胆的,对于后面 react ssr 来说是一个极大便利;Vue 从 v2.5.0 之后对 ts 支持就非常好;Node.js Web 框架,尤其是 Egg.js 对 ts 支持非常好,当然还有更高级更专注的的 Midway 框架,Midway 基于 Egg 生态,同时提供 IoC 等高级玩法;在使用 Webpack 编译前端应用式,通过 TypeScript-loader 可以很轻松地将 TypeScript 引入到 Webpack 中。有了 TypeScript-loader,就可以一边使用 TypeScript 编写新代码,一边零碎地更新老代码。毕竟 ts 是 js 超集,你有空就改,非强制,特别包容。

3.7、从组件库到动态集合

组件开发的出现催生出了一种工具的产生,它就是Bit,以及其托管平台Bit.dev。使用Bit来连续隔离现有组件并将其导出到动态可重用的共享集合中,而无需努力构建麻烦且高度耦合的组件库。使用Bit,你可以独立隔离,版本控制,构建,测试和更新UI组件。它简化了在现有应用程序中隔离组件,将其收集到远程集合并在任何地方使用的过程。每个组件都可以在任何项目之外构建,测试和渲染。你可以更新单个组件(及其相关组件),而不是整个应用程序。在bit.dev平台中(或在你自己的服务器上),可以为不同的团队远程托管和组织组件,以便每个团队都可以控制自己的组件开发。每个团队都可以共享和重用组件,但又保持其独立性和控制力。该平台还提供了共享组件的多合一生态系统:它自动记录UI组件的文档,在交互式中渲染组件,甚至提供内置注册表以使用npm安装组件。此外,你可以在任何存储库中导入组件并进行修改。在短期内,这以与Spotify/iTunes更改以前通过静态CD音乐专辑共享音乐的过程类似的方式,彻底改变了共享和组成组件的过程。这是一个动态的模块化解决方案,每个人都可以共享和使用组件。从长远来看,Bit有助于微前端的开发。主要是因为它已经可以让你独立版本,测试,构建和更新UI应用程序的各个部分。

3.8、设计与开发的整合

随着组件驱动设计系统的兴起,使产品和团队之间的UI一致,新工具应运而生,弥合了设计师和开发人员之间的鸿沟。但是,这不是简单的任务。尽管代码本身实际上是唯一的真理源(这是用户真正得到的),但是大多数工具都试图弥合设计者与设计者之间的鸿沟。在此类别中,您可以找到成帧器,Figma,Invision DSM等。在开发人员的末端,你可以看到Bit.dev之类的平台如何托管下一代组件库并帮助建立共享组件的采用范围。该平台为您的实际源代码提供了呈现的可视化效果,以便设计人员可以与开发人员合作,并以可视化方式在源代码本身上进行讨论。要注意的另一个有前途的想法是设计令牌。将令牌放置在代码中,设计人员可以通过它们直接与外部协作工具真正控制简单的样式方面(例如颜色)。与Bit.dev等平台集成后,可以创建比以往更紧密的工作流程。

3.9、跨端开发框架迅猛发展

从最初的React Native,到后来的Flutter,electron,跨端的解决方案受到了大量前端工程师的关注和学习。Flutter2的发布,其Web开发能力也过度到了稳定版本,同时桌面端开发能力也进入了beta阶段,进一步提高了代码的复用性,同时它也拓展了很多IOS的功能,生态进一步壮大。近乎一套代码便可以完成移动端、web端、桌面端应用的开发,大大缩减开发人员学习其他平台开发技术的成本,一线互联网公司也在将其部分应用使用Flutter进行重构。electron作为一个基于Nodejsde桌面端跨端开发框架,深受大厂的喜爱,飞书、vscode、twitch等均是基于electron进行开发。跨平台也让 Electron 可同时开发 Web 应用和桌面应用,无论是 UI,还是代码,很多资源都可以共享,大幅减少了开发者的工作量。需求推动着跨端框架的发展,无论从成本还是效率考虑,跨端开发都将成为前端开发未来的发展方向之一,其生态也会迎来疯狂扩张。

3.10、低代码平台持续发展

随着十四五规划的推出,进一步推动了企业数字化转型的步伐,众多企业面临数字化转型。相较于培养一支开发团队,多数企业更倾向于使用低代码平台,通过无编码或低编码的方式快速搭建自己的数字化系统。同时,低代码平台迎来了爆发式的增长,至今仍将保持50%的平稳增速。平台快速发展,覆盖的业务场景也逐渐增多,中小企业95%以上的场景可通过低代码平台搭建,中大型企业的覆盖率也能达到70%。低代码平台的迅猛发展,很多业务场景的开发工作逐渐被平台替代,很多简单的前端页面的开发都会转移到平台中完成,初级前端工程师的生存重建逐渐被蚕食。同时低代码平台的发展也会对前端工程师提出了更高的要求。

4、总结

前端开发趋势一直都是热度高且变化快。因此,对于前端开发者来说,想要跟上这些不断变化的趋势,需要耗费巨大的精力。至于前端技术具体会发生哪些变化,让大家拭目以待吧。

本文分享自华为云社区《前端技术领域会有哪些新的变化》,作者:架构师李肯。

怎样分析试卷让孩子成绩飞速提升?

这个问题,偶来回答:怎样分析试卷让孩子成绩飞速提升?

分析试卷的确是最快找到孩子薄弱环节的好方法。只有父母和孩子重视对试卷的分析并把没有掌握的知识点完全掌握了,才能在学习上有所提升。当然要达到飞速提升,还是有不少难度的。

首先要调整好心态,引起重视。对于全对的卷子也没有分析的必要。分析都是针对卷子中错误的部分,来判断出孩子哪个问题,还没完全理解和掌握。从而查漏补缺,针对自己的薄弱环节来加强复习和练习,直到完全理解弄懂和掌握为止。其实分析试卷和错题本的运用是一样的道理,都是针对自己的薄弱环节,进行查漏补缺。题目做错一定是有原因的,表面是粗心大意,其实是基础知识没有掌握好,需要重新去学习。能够明白自己不足的地方,然后去改正它,而且从此后都不要再错了。错误是难免的,改过来就好了。

其次分析试卷能让孩子对于这个阶段的重难点有个整体的认识。期中和期末时就可以有针对性的进行复习和练习。对于课本上的知识点一定要掌握通透,理解到位,还要学校归纳总结,举一反三。很多章节的知识点学会以后,还要学会融汇贯通,特别是综合分析题和问答题的大题,那是需要对几个章节的知识点串联起来回答的,有些还需要结合自己身边的事例来分析和总结。比如政治。知识点是死的,人是活的。通过理解来记忆,印象更加深刻。还可以运用图表,对比,关键字及思维导图来增强记忆。

最后,分析出问题所在,就要去复习和练习,真正学会,下次再遇到类似的问题,就要会解决。分析试卷的目的就是发现问题,解决问题。是哪个章节没有理解和掌握就重点复习哪个章节。对于课本中的例题更是要学会解答和分析。还要多总结和分析,练习时也要学会解题思路和方法。认真仔细的对待每一次的考试,从而掌握自己的薄弱环节,最终消灭它。

总之,分析试卷能够让人知道自己的学习情况,能够针对自己易错的地方,有目的性的复习和练习。对于成绩的提升有很大的好处。对于分析试卷一定要重视,而从中发现的问题,更是要认真对待,及时纠正。相信自己是可以学好的,再加上自己的努力拼搏,就一定能实现成绩的提升。希望偶的回答,能对你有用。

偶是@穆瓣草籽 教育领域创作者,欢迎关注偶,一起探讨教育问题,分享最新教育资讯。

有哪些适合新手学编程的书推荐?

本文从以下几个方面给大家分享几本高价值书单,并不一定全面,欢迎读者补充,希望能对你有帮助。

1 关于编码与重构

1.1 代码整洁之道

英文名《Clean code》,该书出自 Robert C Martin 之手,又被称为 Bob 大叔,是一位美国著名的软件工程师和作家,他已经写了有关敏捷软件开发的书籍。书中提到众多有名的编程原则:比如 SOLID 原则、 Law of Demeter(LoD,又被称为最少知识原则)。推荐理由:每个程序员都必须拥有本书并阅读它。这是一本非常著名的书,它将完全改变您的编程风格,书中介绍的规则均来自作者多年的实践经验,涵盖从命名、数据结构、面向对象的设计原理到重构的多个编程方面,虽为一“家”之言,然诚有可资借鉴的价值。或许,真正整洁的代码真能让同行读起来像诗一样。任何傻瓜都可以编写计算机可以理解的代码。优秀的程序员编写人类可以理解的代码。— 马丁·福勒如果只能读一本书,偶就推荐这本。最后,基于本书,众多开发者还推出了各种语言的整洁之道:• Javascript 整洁之道• PHP 整洁之道• ABAP 整洁之道• Java 整洁之道• .NET 整洁之道还有各大科技公司的代码风格指南:• Google 风格指南• Uber Go 语言风格指南Bob 大叔的《架构整洁之道》也值得推荐,这本书是在架构领域的登峰之作,围绕“架构整洁”这一重要导向,系统地剖析其缘起、内涵及应用场景,涵盖软件研发完整过程及所有核心架构模式。还有《程序员的职业素养》,作者以自己以及身边的同事走过的弯路、犯过的错误为例,意在为后来人引路,助其职业生涯迈上更高台阶。

1.2 重构(第2版)

英文名: 《Refactoring: Improving the Design of Existing Code,2nd Edition》,作者 Joshua Kerievsky。本书是理论和实践最佳组合的罕见书籍之一。重构是一个使您的工作代码更加美丽的过程,这本书可以利用已经尝试和测试的软件开发世界的模式来为您提供帮助。推荐理由:重构一词经常在各种大会上被提及,那就是这本书带来的影响。重构也就是重写软件的过程,而无需更改其功能,以提高其可读性,可检验性或可维护性。重构是使工作代码美观的过程,重构有助于改进工作代码的设计。这也是优秀程序员的必备技巧之一,通常优秀的程序员也擅长重构。本书将教你重构代码的艺术和科学。无论您是 Java 程序员、C++ 开发人员还是 Python 开发人员,每个程序员都可以从本书中受益。与《重构》经常被提及的书就是大名鼎鼎的《代码大全》,书中解释的也是久经考验的技术和策略,能有效帮助程序员和软件开发人员。笔者也曾在大学的时候把这本书图书馆借出来,发现这本书太厚,啃不动,到期就立马归还了。

1.3 代码之美

英文名:《Beautiful Code: Leading Programmers Explain How They Think》,作者:Grey Wilson。推荐理由:大牛前辈的博客合集,同时也是提高编码技能的好书之一,因为它为您提供了一个机会,让您了解专业程序员如何处理问题、编写的代码以及他们如何解决问题,并且仍然能够保持他们的代码美观。这本书是一系列案例研究的集合,揭示了 Emacs 到 Facebook 等大型网站架构秘密,讲述了那些专家程序员,包括布莱恩·克尼原,乔恩·本特利(Jon Bentley)(编程珠玑的作者),蒂姆·布雷(Tim Bray),卡尔·福格尔(Karl Fogel),迈克尔·菲瑟斯(Michael Feathers)(有效地使用旧版代码的作者),以及许多更多伟大的作者和程序员。关于二分查找,在书中数次被不同作者提及,了解不同作者的观点。无论您使用哪种编码语言,例如 Java,C#,Python 或 Ruby,都会在本书中找到有趣的东西。代码之美调查了一项努力的人类发明和创造力的范围:计算机系统的开发。每章中的美观来自发现独特的解决方案,这是作者的力量超越界限,识别他人所忽略的需求,并找到令人惊讶的解决方案,以解决令人困扰的问题。

2 关于职业成长

2.1 程序员修炼之道(第2版)

英文名《Pragmatic programmer》,作者是 Andrew Hunt & David Thomas。中文版的译者是大名鼎鼎的云风,副标题是:通向务实的最高境界。推荐理由:本书是时隔 20 年的新版,覆盖哲学、方法、工具、设计、解耦、并发、重构、需求、团队等务实话题的最佳实践及重大陷阱,以及易于改造、复用的架构技术。刚出来的时候博文出版社举办了一个推广活动,在云风和皓子叔联袂推荐下,毫不犹豫的入手了本书。程序员往往最难得就是务实主义,总想追求新技术,炒新概念。工作后才逐渐明白,编程的本质,均不依赖于特定语言、框架和方法,技术改变世界在于能够有效解决用户的真实需求。本书本质上是程序员的自助指南。它探索了良好的软件开发实践,并为您提供了出色的建议、提示和技巧,以更有效地编程。正是对经典和现代轶事、引人入胜的类比和发人深省的例子的创造性使用,使每个部分的学习都变得有趣而有趣。如果说大学期间读的都是类似于 C 语言圣经和 Head First 系统书籍的话,工作后的人才会真正懂得为什么这本书籍不厚,读起来拍案叫好,这大概就是大道至简。作者另一著作:《程序员修炼之道: 从小工到专家》也是值得推荐的

2.2 卓有成效的程序员

英文名:《The Productive Programmer》,作者:Neal Ford。推荐理由:本书就是讲述如何在开发软件的过程中变得更加高效。同时,《卓有成效的程序员》的讲述将会跨语言和操作系统:很多技巧的讲述都会伴随多种程序语言的例子,并且会跨越三种主要的操作系统,Windows(多个版本),Mac OS X 以及 *-nix (Unix 或者 Linux)。贯穿全文的思想大概就是尽量让机器做机器该做的事情,让程序和程序打交道,发挥程序员在这方面的先天优势。学会善用工具,命令行、学会写脚本,学会宏。提供效率,不去做重复单调的工作。最终的目的:成为一个“慵懒”的程序员。

2.3 软技能:代码之外的生存指南

英文名:《Soft Skills: The software developer’s life manual》,作者:John Z. Sonmez推荐理由:研究生期间读过最受益的一本非技术书。程序员都知道编码很重要,这是大家吃饭的硬技能。可是实际工作上才发现不止写代码,代码之外的软技能也很重要:比如面临着与客户沟通、与产品打交道的沟通问题;比如应该关注自身发展,书中也介绍了怎么做职业突围;还有更多章节介绍了作者如何学习、如何理财、健身、自偶营销等等。分享书中有趣让偶印象深刻的点是作者去面试,面试官浏览过他的博客文章,两人因此相谈甚欢。 最后也想给阅读的朋友声明一下:这本书涉猎了很多方面,但是并不是没一点都是一套可以照抄的完美答案,毕竟作者也是从当时的环境和自己经历出发介绍这些内容,每个读者应该都有自己的选择,综合而言,这本书挺适合各个阶段的人阅读的,尤其大学生和初入职场的朋友。作者也出了《软技能2:软件开发者职业生涯指南》,如果说软技能关注于生活,那软技能 2 则更加关注于了软件开发职业。

3 关于黑客与开源

3.1 Unix 编程艺术

书籍英文名:《The Art of UNIX Programming》,作者:《Eric S. Raymond》从 1982 年开始就是 UNIX 开发者。推荐理由:本书涉及 Unix 系统领域中的设计和开发哲学、思想文化体系、原则与经验,由公认的 Unix 编程大师、开源运动领袖人物之一 Eric S.Raymond 倾力多年写作而成。程序会过时,编程语言会更新,代码会跟随业务不断改动,但编程思想的生命力会长盛不衰,好的编程艺术也是具有穿透力的,尽管书中的案例已经偏老,但贯穿始终的 KISS 原则、思想文化体系、设计与开发哲学一定能够给你带来醍醐灌顶的感觉。Keep it simple stupid,简称 KISS 原则。在做软件设计的工作中,很多时候都不要想得过于复杂,也不要过度设计和过早优化,用最简单且行之有效的方案也就避免了复杂方案带来的各种额外成本。这样既有利与后续的维护,也有利于进一步的扩展。另外,本书还可以与“左耳朵耗子”ef=””>皓子叔推荐 过的《UNIX传奇:历史与回忆》结合着一起看,了解 UNIX 的诞生记与发展史,贝尔实验室的幕后故事!本书不但书写 Unix 的历史,而且记录作者的回忆,一探 Unix 的起源,试图解释什么是 Unix,Unix 是如何产生的,以及 Unix 为何如此重要。

3.2 大教堂与集市

英文名:《The Cathedral & the Bazaar: Musings on Linux and Open Source by an Accidental Revolutionary》, 《Unix编程艺术》作者 Eric S. Raymond 的另一封神之作,副标题是《对 Linux 和开源革命的沉思》。推荐理由:大家都知道程序员热衷于开源文化,都在说不要重复造轮子。开源时代下的软件开发可能只需要三个键盘按钮:CTRL + C + V,开个玩笑。说到开源文化,那么本书《大教堂与集市》是开源运动的《圣经》,颠覆了传统的软件开发思路,影响了整个软件开发领域。作者把软件开发思路类比于古代的大教堂文化和集市文化,讲述了集市如何变成大教堂,书中系统解释了开源软件是如何生产的,开源开发的优势在哪,开源软件的传承是如何做到的。

3.3 黑客与画家

英文名:《Hackers and Painters: Big Ideas from the Computer Age》,作者:Paul Graham,本书的译者是大名鼎鼎的阮一峰大佬。推荐理由:说到黑客文化,就不得不提到硅谷创业之父Paul Graham 的这本书,本书主要介绍黑客 Hacker,即优秀程序员的爱好和动机,讨论黑客成长、黑客对世界的贡献以及编程语言和黑客工作方法等所有对计算机时代感兴趣的人的一些话题。本书是一本为黑客正名的技术散文集,看完书后第一次将偶从电影中的黑客形象颠覆过来,才了解到并不是入侵系统、制作病毒、各种解密的人就是黑客,Hacker 是专家级程序员,是一群与画家有着极大的相似性,他们都是在创造,而不是完成某个任务,“黑客”象征着第一流的能力,以及求解问题过程中产生的精神愉悦或享受。他们崇尚分享、开放、民主、计算机的自由使用和进步。而那些恶意入侵计算机系统的人更应该被称为 cracker(骇客)。

4 关于算法与设计模式

4.1 算法设计手册

英文名:The Algorithm Design Manual (2nd Ed.),作者:Steven S Skiena推荐理由:关于算法的重要性大家都知道,大家肯定都知道另外两本著名的《算法导论》和《算法4》:《算法导论》侧重与算法的数学推导,适合研究,而《算法4》侧重于算法的代码实现,适合入门。而这次推荐的《算法设计手册(第2版)》却没有那么有名气,但也不失为设计实用且高效算法的最全面指导书。该书揭密了算法的设计与分析,以简单易懂的写作风格,介绍了各种算法技术,着重强调了算法分析。目前市场上算法书层出不穷,但是经典的算法却一直在那里,不曾走远。

4.2 Head First 设计模式

英文名:《Head first design patterns》,作者:Elisabeth Freeman / / Eric Freeman / Bert Bates / Kathy Sierra / Elisabeth Robson推荐理由:这本书完整地涵盖了 GoF 版本全部23个设计模式,毫不费力地解释了世界各地熟练的软件开发人员和程序员用来构建优雅、功能齐全、灵活和可重用的软件的几种软件设计模式。。图文并茂,配有大量说明性和启发性的示例,它们将使学习同时变得高效和有趣。与其他文本繁重的编程书籍不同,这本书具有引人深思、视觉丰富的格式。Head First 系统书籍充满了幽默感,选题和编辑都很用心,值得一读。相信读完的读者逐步迈向对软件设计模式的深入了解。再来读 GoF 不失为一个不错的选择。

4.3 设计模式:可复用面向对象软件的基础

英文名:《 Design Patterns: Elements of Reusable Object-Oriented Software》,又被简称为计算机领域的 GoF ,因为本书的作者是四个人:Erich Gamma / Richard Helm / Ralph Johnson / John Vlissides。推荐理由:本书是任何使用面向对象代码的开发人员的必备入门读物。而且作者 Erich Gamma 是 jUnit、Eclipse、IBM Jazz 项目、Visual Studio、Azure 和 Office 365 的幕后推手。如果您没有很好地掌握 UML,您可能会发现很难吸收编程书中汇编的一些信息和示例。然而,这不会阻止您欣赏设计模式书中叙述的美妙之处,它既简单又内容丰富。《设计模式》一书详尽地解释了 23 种软件设计模式,可帮助软件开发人员和设计人员制作更好、更优雅、更灵活的软件。这本书讨论了针对常见软件设计问题的大量简洁明了的解决方案。如果说 GoF 太难读下去,那么就推荐程杰的《大话设计模式》,这本书通过对话的形式带领大家入门设计模式,人人都可以是好学的小菜和经验丰富的大鸟。

4.4 编程珠玑(第2版•修订版)

英文名:《More Programming Pearls,Second Edition》,作者:John Bentley推荐理由:这是一本带你真正领略计算机科学之美,融深邃思想、实战技术与趣味轶事于一炉的奇书。与大多数其他编程书籍不同,这本书侧重于基本问题和一般问题。它讨论了可以提高性能或减少内存需求的各种算法和技术。作者选取许多具有典型意义的复杂编程和算法问题,生动描绘了历史上众大师们在探索解决方案中发生的轶事、走过的弯路和不断精益求精的历程。就如书名一样,大浪淘沙,计算机科学中的智慧正如自然界里珍珠出自细沙对牡蛎的磨砺,留下一个个编程“珠肌”。

题外话:

上面的书都是本人曾经阅读过,或者说在图书馆中有借阅翻过的书。也是计算机领域评分很高、有口皆碑的书籍。但计算机行业的经典书籍太多,本人能推荐的也只是其中一部分,想要推荐的内容也不想针对某个特定编程语言和领域,所以像《C++编程思想》和《On Java8》这类书籍没有进行推荐,推荐理由也不一定完全正确,欢迎大家批评指正。另外,看完上述的书并不能说自己就能在工作中就能运用到,看完就能成为一个顶尖的程序员。何况看书也不能完全接收前辈们的这些大智慧,但如果在某个瞬间(看书过程或者实践过程中)对自己有一种醍醐灌顶的感觉,就已足够。

参考链接:

• UNIX传奇(上篇)• 假期好读书• Top 5 Books to Improve Coding and Programming Skills• /images/comics/wtfm.jpg

本文分享自华为云社区《【云驻共创】对于编程思想和能力有重大提升的书有哪些》,作者:宇宙之一粟 。

前端就业为什么那么难?

前端开发趋势一直都是热度高且变化快。因此,对于前端开发者来说,想要跟上这些不断变化的趋势,需要耗费巨大的精力。至于前端技术具体会发生哪些变化,让大家一起来聊聊吧。

1、前端介绍

前端,也称为“客户端开发”,简单来说,你可以在应用程序或网站的屏幕上看到的所有内容都属于前端。让大家考虑一个现实的例子:你正在访问的网站。内容设计、图像、段落和线条之间的间距,左上角的公司徽标,以及右下角的小通知按钮——所有这一切都是前端。

2、前端技术包括哪些?

前端开发是创建Web页面或app等前端界面呈现给用户的过程,通过HTML,CSS及JavaScript以及衍生出来的各种技术、框架、解决方案,来实现互联网产品的用户界面交互 。它从网页制作演变而来,名称上有很明显的时代特征。在互联网的演化进程中,网页制作是Web1.0时代的产物,早期网站主要内容都是静态,以图片和文字为主,用户使用网站的行为也以浏览为主。随着互联网技术的发展和HTML5、CSS3的应用,现代网页更加美观,交互效果显著,功能更加强大。

2.1、HTML

掌握HTML是网页的核心,是一种制作万维网页面的标准语言,是万维网浏览器使用的一种语言,它消除了不同计算机之间信息交流的障碍。因此,它是目前网络上应用最为广泛的语言,也是构成网页文档的主要语言,学好HTML是成为Web前端开发人员的基本条件。HTML是一种标记语言,能够实现Web页面并在浏览器中显示。HTML5作为HTML的最新版本,引入了多项新技术,大大增强了对于应用的支持能力,使得Web技术不再局限于呈现网页内容。随着CSS、JavaScript、Flash等技术的发展,Web对于应用的处理能力逐渐增强,用户浏览网页的体验已经有了较大的改善。不过HTML5中的几项新技术实现了质的突破,使得Web技术首次被认为能够接近于本地原生应用技术,开发Web应用真正成为开发者的一个选择。HTML5可以使开发者的工作大大简化,理论上单次开发就可以在不同平台借助浏览器运行,降低开发的成本,这也是产业界普遍认为HTML5技术的主要优点之一。AppMobi、摩托罗拉、Sencha、Appcelerator等公司均已推出了较为成熟的开发工具,支持HTML5应用的发展。

2.2、CSS

学好CSS是网页外观的重要一点,CSS可以帮助把网页外观做得更加美观。

2.3、JavaScript

学习JavaScript的基本语法,以及如何使用JavaScript编程将会提高开发人员的个人技能。

2.4、Bootstrap

主流框架之一,Bootstrap 是基于 HTML、CSS、JavaScript的,它简洁灵活,使得 Web 开发更加快捷。

2.5、html5-boilerplate

该框架可以快速构建健壮,且适应力强的web app或网站。

2.6、Meteor

Meteor是新一代的开发即时web应用的开源框架,它能在较短时间内完成开发。

2.7、Semantic UI

基于自然语言有效原则的UI组件框架。

2.8、Amaze UI

国内首个开源HTML5跨屏前端框架产品系列,中文排版支持更优、本土化组件丰富。该产品系列中有专门针对移动端的HTML5混合应用开发框架Amaze UI Touch以及针对跨屏HTML5网页开发的Amaze UI Web。其中,Amaze UI Touch可以帮助开发者通过丰富的组件,快速构建出与原生APP相媲美的专属移动端的HTML5应用。

3、前端技术领域变化

3.1、Web组件化

基本上这就是未来。为什么?因为这些纯Web组件与框架无关,并且可以在没有框架或没有任何框架拼写标准化的情况下工作。因为它们没有JS疲劳,并且得到了现代浏览器的支持。因为它们的文件大小和消耗将是最佳的,并且VDOM渲染令人赞叹。这些组件提供了Custom Element,这是一个Javascript API,可让你定义新html标签,HTML模板以指定布局,当然还有Shadow DOM,它本质上是特定于组件的。在这个领域中知名的工具是Lit-html(和Lit-element),StencilJS,SvelteJS,当然还有Bit,它们是可重用的模块化组件,可以在任何地方直接共享,使用和开发。考虑组件开发时代的未来,以及模块化,可重用性,封装和标准化的原理,Web组件就是答案。

3.2、微前端

Serverless即“无服务器”架构,它试图帮助开发者摆脱运行后端应用程序所需的服务器设备的设置和管理工作,它由第三方云计算供应商负责后端基础结构的维护,同时以服务的方式为开发者提供所需的功能,例如数据库、消息、身份验证等。微前端的概念类似于微服务,它将前端应用拆分成一个个更小的更简单的能够独立开发、测试、部署的小块,在用户看来它依旧是一个独立的产品。前端业务在发展到一定规模后,需要一种能将业务化繁为简的架构。常用的微前端解决方案有single-spa、qiankun。微前端、Serverless目前都未出现大规模应用的情况,各大公司对此都处于探索阶段,两项技术稳步发展,期待未来大规模的应用。

3.3、微设计

布拉德·弗罗斯特(Brad Frost)提出的理论将Web应用程序的构成与原子,分子,有机体等的自然构成进行了比较,最后以具体的Web页面作为结尾。原子由分子组成(例如,文本输入+按钮+标签原子=搜索分子)。分子组成生物体。有机体位于布局模板中,该模板可以具体化为交付给用户的页面。Atomic组件的优势不只是通过模块化和可重用的组件来构建模块化UI应用程序。这种范例迫使你思考组成每个组件的角色和API。

3.4、Web组装

Web程序集将语言多样性带入Web开发中,以弥补JavaScript创建的空白。它被定义为“基于堆栈的虚拟机的二进制指令格式。Wasm被设计为可移植目标,用于编译高级语言(如C/C ++/Rust),从而可以在Web上为客户端和服务器应用程序进行部署。”埃里克·埃利奥特在他的文章中优雅地概述了该概念的好处:在wasm中实现对性能至关重要的内容,并将其像标准JavaScript模块一样导入。一种新语言:WebAssembly代码定义了以二进制格式表示的AST(抽象语法树)。您可以编写和调试文本格式,以便于阅读。对浏览器的改进:浏览器将理解二进制格式,这意味着大家将能够编译二进制捆绑包,压缩后的二进制包小于大家今天使用的文本JavaScript。较小的有效载荷意味着更快的传递。根据编译时的优化机会,WebAssembly的运行速度可能比JavaScript快!

3.5、封装样式和Shadow Dom

组件的一个重要方面是封装-能够使标记结构,样式和行为保持隐藏状态,并与页面上的其他代码分开,以使不同部分不会冲突,并且代码可以保持整洁。Shadow DOM API是其中的关键部分,它提供了一种将隐藏的单独DOM附加到元素的方法。Shadow DOM实际上已经被浏览器使用了很长时间了。您可以将影子DOM视为“ DOM中的DOM”。它是自己的隔离DOM树,具有自己的元素和样式,与原始DOM完全隔离。它允许将隐藏的DOM树附加到常规DOM树中的元素上。该阴影DOM树以影子根开头,可以与普通DOM相同的方式附加到所需的任何元素上。这样做的主要目的是,大家不需要为类使用名称空间,因为不存在名称冲突或样式溢出的风险。这就是Web组件样式进行真正封装的解决方案。

3.6、TypeScript接管前端

最近的每次交谈都听起来好像TS正在接管前端开发。据报道,有80%的开发人员承认他们想在下一个项目中使用或学习TypeScript。尽管有缺点,但TS代码更易于理解,实现更快,产生的错误更少。想重构你的React应用程序并与TS一起使用吗?去吧。想逐步开始吗?使用Bit之类的工具逐步将你的应用程序中的组件重构为TS,并使用React-Typescript编译器独立于应用程序构建它们。TypeScript,它是有类型定义的 JavaScript 的超集,包括 ES5、ES5+ 和其他一些诸如反射、泛型、类型定义、命名空间等特征的集合,为了大规模 JavaScript 应用开发而生。复杂软件需要用复杂的设计,面向对象就是一种很好的设计方式,使用 TypeScript 的一大好处就是 TypeScript 提供了业界认可的类( ES5+ 也支持)、泛型、封装、接口面向对象设计能力,以提升 JavaScript 的面向对象设计能力。市面上的框架也对 TypeScript 提供了非常好的支持。React 对.tsx 支持非常好,比如偶在 Midway controller 里支持 tsx 写法,这是非常大胆的,对于后面 react ssr 来说是一个极大便利;Vue 从 v2.5.0 之后对 ts 支持就非常好;Node.js Web 框架,尤其是 Egg.js 对 ts 支持非常好,当然还有更高级更专注的的 Midway 框架,Midway 基于 Egg 生态,同时提供 IoC 等高级玩法;在使用 Webpack 编译前端应用式,通过 TypeScript-loader 可以很轻松地将 TypeScript 引入到 Webpack 中。有了 TypeScript-loader,就可以一边使用 TypeScript 编写新代码,一边零碎地更新老代码。毕竟 ts 是 js 超集,你有空就改,非强制,特别包容。

3.7、从组件库到动态集合

组件开发的出现催生出了一种工具的产生,它就是Bit,以及其托管平台Bit.dev。使用Bit来连续隔离现有组件并将其导出到动态可重用的共享集合中,而无需努力构建麻烦且高度耦合的组件库。使用Bit,你可以独立隔离,版本控制,构建,测试和更新UI组件。它简化了在现有应用程序中隔离组件,将其收集到远程集合并在任何地方使用的过程。每个组件都可以在任何项目之外构建,测试和渲染。你可以更新单个组件(及其相关组件),而不是整个应用程序。在bit.dev平台中(或在你自己的服务器上),可以为不同的团队远程托管和组织组件,以便每个团队都可以控制自己的组件开发。每个团队都可以共享和重用组件,但又保持其独立性和控制力。该平台还提供了共享组件的多合一生态系统:它自动记录UI组件的文档,在交互式中渲染组件,甚至提供内置注册表以使用npm安装组件。此外,你可以在任何存储库中导入组件并进行修改。在短期内,这以与Spotify/iTunes更改以前通过静态CD音乐专辑共享音乐的过程类似的方式,彻底改变了共享和组成组件的过程。这是一个动态的模块化解决方案,每个人都可以共享和使用组件。从长远来看,Bit有助于微前端的开发。主要是因为它已经可以让你独立版本,测试,构建和更新UI应用程序的各个部分。

3.8、设计与开发的整合

随着组件驱动设计系统的兴起,使产品和团队之间的UI一致,新工具应运而生,弥合了设计师和开发人员之间的鸿沟。但是,这不是简单的任务。尽管代码本身实际上是唯一的真理源(这是用户真正得到的),但是大多数工具都试图弥合设计者与设计者之间的鸿沟。在此类别中,您可以找到成帧器,Figma,Invision DSM等。在开发人员的末端,你可以看到Bit.dev之类的平台如何托管下一代组件库并帮助建立共享组件的采用范围。该平台为您的实际源代码提供了呈现的可视化效果,以便设计人员可以与开发人员合作,并以可视化方式在源代码本身上进行讨论。要注意的另一个有前途的想法是设计令牌。将令牌放置在代码中,设计人员可以通过它们直接与外部协作工具真正控制简单的样式方面(例如颜色)。与Bit.dev等平台集成后,可以创建比以往更紧密的工作流程。

3.9、跨端开发框架迅猛发展

从最初的React Native,到后来的Flutter,electron,跨端的解决方案受到了大量前端工程师的关注和学习。Flutter2的发布,其Web开发能力也过度到了稳定版本,同时桌面端开发能力也进入了beta阶段,进一步提高了代码的复用性,同时它也拓展了很多IOS的功能,生态进一步壮大。近乎一套代码便可以完成移动端、web端、桌面端应用的开发,大大缩减开发人员学习其他平台开发技术的成本,一线互联网公司也在将其部分应用使用Flutter进行重构。electron作为一个基于Nodejsde桌面端跨端开发框架,深受大厂的喜爱,飞书、vscode、twitch等均是基于electron进行开发。跨平台也让 Electron 可同时开发 Web 应用和桌面应用,无论是 UI,还是代码,很多资源都可以共享,大幅减少了开发者的工作量。需求推动着跨端框架的发展,无论从成本还是效率考虑,跨端开发都将成为前端开发未来的发展方向之一,其生态也会迎来疯狂扩张。

3.10、低代码平台持续发展

随着十四五规划的推出,进一步推动了企业数字化转型的步伐,众多企业面临数字化转型。相较于培养一支开发团队,多数企业更倾向于使用低代码平台,通过无编码或低编码的方式快速搭建自己的数字化系统。同时,低代码平台迎来了爆发式的增长,至今仍将保持50%的平稳增速。平台快速发展,覆盖的业务场景也逐渐增多,中小企业95%以上的场景可通过低代码平台搭建,中大型企业的覆盖率也能达到70%。低代码平台的迅猛发展,很多业务场景的开发工作逐渐被平台替代,很多简单的前端页面的开发都会转移到平台中完成,初级前端工程师的生存重建逐渐被蚕食。同时低代码平台的发展也会对前端工程师提出了更高的要求。

4、总结

前端开发趋势一直都是热度高且变化快。因此,对于前端开发者来说,想要跟上这些不断变化的趋势,需要耗费巨大的精力。至于前端技术具体会发生哪些变化,让大家拭目以待吧。

本文分享自华为云社区《前端技术领域会有哪些新的变化》,作者:架构师李肯。

css后代选择器可能的错误认识 有人说现在前端入门门槛越来越低 – CSS – 前端 css文件引入css文件

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。