现在(2022)的Web开发 在工具选择上 真是太多了,就「前端样式」[注] 一项任务就有很多技术供选择,本文说说CSS三项主流技术的特点和区别。
注:web开发 可分为 后端(RH开发的MVC),前端(V组件的 UI结构,样式和交互)多种任务
本文在此文(SASS vs CSS-in-JS vs TailwindCSS)基础之上改写而成,加入自己的见解。
现在(2022)的Web开发 在工具选择上 真是太多了,就「前端样式」[注] 一项任务就有很多技术供选择,本文说说CSS三项主流技术的特点和区别。
注:web开发 可分为 后端(RH开发的MVC),前端(V组件的 UI结构,样式和交互)多种任务
本文在此文(SASS vs CSS-in-JS vs TailwindCSS)基础之上改写而成,加入自己的见解。
开发企业应用(大规模应用),我们需要,也喜欢使用框架、工具库甚至是现成的脚手架(scaffolding)。因为「框架」给我们提供高效舒适的开发环境,「脚手架」则甚至提供即用的半成品,二者结合可以让我们迅速 进入 业务开发。
开发web应用 ,laravel 是 流行后端框架的一支,laravel官方除了是 高效的后端框架外,也提供很多 脚手架,这些脚手架不限于后端,也有全栈的,看这里(https://laravel.com/docs/9.x/starter-kits)。
此外,laravel 发展 推进了 前端技术的创新,还出现两种新技术:livewrie , inertia。
这样,在兼顾新技术拓展,和后向兼容,「laravel 前端脚手架」多样发展,让新手感觉眼花撩乱, 不知如何选择。
算法 对编程专业 很重要大家都认可,但怎么个重要法?算法好难学,怎么入门?这些问题则是对大家来说更为有意义的一个问题。
很多人,和专家都推荐《算法导论》这本书,有点捧为经书的意味。我读了一下以后,我觉得,名不符实。叫导论实有误导的嫌疑,更不能算入门书。我个人认为此书有以下一特点(不足):
好书应该行文流畅,深入浅出,这两条此书都不合格。就深入浅出而言,浅出是绝没有的,深入的话,深入到哪里去?数学内容这么多,可是算法的核心是数学(数学证明)吗?这一本书由几位从事计算机科学教学研究的应用数学家编著的,不是算法专业(也没有这个专业)的专家,也不是教育家,阅读体验可想而知。(以上只是个人初步的分析,或许有偏颇)
最近几天都在考虑要不要写年终回顾,下意识还是要写,但真的很忙。
我不想写的一个理由是说,其实我回头看曾经写下各类阶段性学习总结,当时都是对自己的成长和进步有很高的评价,但是再经过一段时间后都有发现评估过高,评价带有主观性,和偏见。不过有一点值得安慰的是,基本上自引导的方向没有大错,所有观点没有原则性错误,只是不够全面,深入,和贴合实际。
年终总结还是要写,方式,内容待定。
这两年一直在打 前端开发的专业基础,没有什么实践,主要以看代码为主,很少动手,现在开始补。这几天在github搜寻,还是找到一些不错的开源实践项目,逐个做一做,并整理成文,结为经验。
找到了几个(看下面),因为都是精心设计过的线下课程,它们的特点或优点是 主题内容较全面,练习题循序渐进,练习题描述清晰,且答案配套,非常适用自学用。
开始之前,先聊一聊有关 实践和理论的关系。
光有 webpack 等bundling技术 是不够的,前面第一篇说了,构件表达,和构件复合方式 是推动 前端工程模块化的关键。因为即使你有打包不同web模块的机制,可是如果 模块本身的格式编写起来很费劲(看第二篇的Greeting V模块),可扩展性和可维护性差,那工程效率就很低,就谈不上成熟的工程模块化了。
当我们往/src 目录创建新源文件,或拷入新资源数据(例如图片),它们都均属于某一种类型 「web模块」。类型 的意义是说,它是有某种 固定格式,包括外部形式,和内部构成。例如 V模块类型一定会访问DOM的,样式模块一定有样式定义,并提供给V模块使用等等。本文我们正式开始写V模块。
上一篇我们 为前端模块化开发 做了最基础的工作,包括webpack基础配置(包括开发服务器),和index模块的创建,还创建了一测试的V模块app.js。
然而,这些基础配置是不完整的。第一,app.js没有被转译为更通用的 ES5代码;第二,没有配置支持开发CSS和资源模块。本文任务就是配置更完整的 webpack,并且开发更完整功能 Welcome world 作演示。
现在web 应用前后端分离,前端独立成一个专业,并且还工程化了,这个事实对于 经历过早期Web1.0和2.0的开发者而言,刚接触时应该是比较新奇的。
应用软件网络化,web services 成为不可阻挡的 软件应用的风潮。作为一名技术开发者,一名经历过早期web开发的人,我最感兴趣是 前端工程化的概念——什么东西被工程组件化了。
(本文介绍手动配置前端开发环境——构建工具链的核心部分,通常这部分我们都是通过前端框架官方脚手架自动搭建的,例如React 的 create-react-app 和 Vue的 Vue CLI。如果你想了解这些脚手架为我们做了什么,本文对你有用。)
当我们手动为了一支现代的「Web 应用」 准备开发环境,这个过程对于新手来说,不是特别的简单,尤其是当前端使用了像React框架的情况,因为社区生态(ecosystem)存在错综复杂的关系。这需要一些 分析,学习,和记录具体过程。
web app 用户认证功能模块,是一个高级用户交互功能模块,也是很基础的功能模块。因为大部分web应用 有用户特定的私密的交互会话。
用户认证功能 ,从名字就可推知,它是在用户数据模块基础之上的应用。
本文记录了使用 passport.js 作为 开发用户认证功能模块任务 的工具,省下了一功夫,也将 用户认证功能模块 的处理逻辑 标准化。也为日后使用其他认证方式提供了扩展(例如 使用微信,微博等社区授权登录)。
本文摘译自MongoDB官方迁移白皮书《RDBMS to MongoDB Migration Guide》。
关系数据库作为企业数据管理系统的技术基础已经有四十年了。但是,我们今天构建和运行应用程序的方式,加上新数据源和用户负载的持续增长,正在 将关系数据库推向超出其极限。这会抑制业务敏捷性,限制可扩展性,并使预算紧张,迫使越来越多的组织迁移到替代方案。
从关系数据库迁移到MongoDB过程中最根本的变化是「数据建模」的方式的改变。
与任何数据建模练习一样,每个用例都是不同的,但是对于大多数Schema迁移项目,有一些一般的考虑事项。