snippet-composer:给代码片段加点魔法

导读snippet 在软件工程领域可译为代码片段,虽然你可能很少有机会编写它,但你一定会在代码编辑器上使用过它。它要么直接集成到编辑器中,要么以插件的形式来进行扩展。就以笔者经常使用的 vscode 为例,在做网页开发时,会安装HTML Snippets、Javascript Snippets等插件,如果使用到框架还会安装框架对应的插件,这些插件内置的代码片段可以极大提高开发效...

一文看懂如何拆解业务组件

简单场景 左侧是一个列表,列表的单项点击编辑按钮,右侧表单则显示对应数据。 之前的设计方式按照业务区域来完成业务组件的划分,并且将各个业务区域的逻辑埋在对应的业务组件中。 同时重度依赖mobx强大的数据监听能力,将操作数据的业务逻辑和数据实体集中在一起。 该页面组件的整体结构可能如下: 在这样的业务组件结构设计下,页面的数据流向及处理流程如下图: 问题点数据流向 始终从数据...

linux服务器安装SonarQube代码检测工具

背景最近公司技术大佬同事告知,sonarlint可以用来检测代码是否有问题,并且能将其集成到Jenkins里面。本着好奇的心思来研究了一下,花了点时间将其在linux服务器上搭建完毕,网上可以查到的文章和教程资料并不少,但是很多写的不是很完美,会很容易踩坑,所以这里把本次成功的步骤记录下,并且把安装前注意的点接下来介绍下。 注意(重点)这里需要注意,任何一个步骤错,都可能会导致...

JavaScript 设计模式之代理模式

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第 30 天,点击查看活动详情 现在页面上有一个香港回归最想听的金典曲目列表: <ul id="container"> <li>我的中国心</li> <li>东方之珠</li> <li>香港别来无恙</li>...

JavaScript 设计模式之发布订阅者模式

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第 28 天,点击查看活动详情。 观察者模式(Observer Pattern)又叫发布订阅模式(Publish/Subscribe),它定义了一种一对多的关系,让多个观察者对象同时监听某一个主题对象,这个主题对象的状态发生变化时就会通知所有的观察者对象,使得它们能够自动更新自己。 先来看一个需求,天气预报系...

为团队提供提供支持 ts、代码规范以及提交规范的项目模板

theme: github前言最近,进入新公司的架构部,日常开发中,涉及到挺多的 cli 项目。在开发的过程中发现,大家觉得 cli 的项目比较小的,时间也比较赶,都是随手创建一个项目,直接开发。对于代码规范,提交规范,这些都没有去处理。有时觉得使用 ts 比较好,也不想花时间搭建环境。做为一个乐于帮助团队的程序猿,帮助大家搭建一个基础项目模板还是很乐意,也挺有成就感。大家思考...

JavaScript 设计模式之策略模式

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第 26 天,点击查看活动详情 学习设计模式的目的是:为了代码可重用性、让代码更容易被他人理解、保证代码可靠性。 设计模式使代码编写真正工程化;设计模式是软件工程的基石脉络,如同大厦的结构一样。 经典的设计模式有 23 种,但并不是每一种设计模式都被频繁使用。在这里,介绍最常用和最实用的几种设计模式,本文先来...

没有不拂晓的夜-2022年中总结

theme: v-green「时光不负,创作不停,本文正在参加2022年中总结征文大赛」2022年的上半年,绝对是一生难以忘怀的一个时间段。 签了两次手术通知书,迎来了大学的毕业。 毕业终于毕业啦,大学4年,在学校待了2年,剩下的都是在实习和网课中度过的,毕业还是算顺利的,那就展示一下我的致谢吧。 下面是我毕业当天,以前教过的高中生送的花 两次手术今年的两次手术,第一次是...

前行路上勿忘初心 良好的 html 结构依然是根基

theme: cyanosis highlight: zenburn持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第21天,点击查看活动详情 废话只说一句:码字不易求个👍,收藏 === 学会,快行动起来吧!🙇‍🙇‍🙇‍。 前行路上勿忘初心 良好的 html 结构依然是根基。随着前端技术发展日新月异,很多小伙伴可能为了追求框架开发,而忽视了最基本的东...

适合初学者的 10 个JavaScript 代码整洁技巧

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第 20 天,点击查看活动详情 1. 数组合并// 常规逻辑const apples = ["🍎", "🍏"];const fruits = ["🍉", "🍊", "🍇"].concat(apples);console.log(fruits); // ["🍉", "🍊", "🍇", "🍎",...