完整介绍 Git 分支策略 feat. Git Flow, GitHub Flow, GitLab Flow, TBD
近期在维护不同规模的专案,想说可以了解一下不同 Git 分支策略的优缺点来替专案选择适合的开发策略。现阶段我最常接触的是 Gitflow 的方式来进行开发,但发现这样的策略在小型规模的专案(5 人以下)并没有这么灵活好用,恰巧可以在全新的专案上尝试其他策略。
近期在维护不同规模的专案,想说可以了解一下不同 Git 分支策略的优缺点来替专案选择适合的开发策略。现阶段我最常接触的是 Gitflow 的方式来进行开发,但发现这样的策略在小型规模的专案(5 人以下)并没有这么灵活好用,恰巧可以在全新的专案上尝试其他策略。
撰写这篇文章是因为接手过非常反人类的 Tailwind 项目,一些不应该出现的反模式其实都可以在早期被轻松避免,随着项目规模变大,这些反模式就会变成一个巨大的问题难以修正。本文将介绍一些我在项目中看到的反模式,并提醒你千万不要这样做!
我是一个物欲非常低的人,日常东西就是用到坏才换新,直到某天常用的薄膜键盘坏了才开始寻找新的键盘。在挑选新键盘的过程中让我想到选择键盘的一些故事促使写下这篇文章。作为软件工程师不外乎每天接触到的硬件生产力工具大概就是:键盘、鼠标、电脑、屏幕、椅子、笔电、大水杯(喝水非常重要),其中键盘绝对是情感最深厚的一一个。
近期重写的专案中有许多状态需要管理,会需要统一管理资料于专案中,为了避免写死代码(Hard Coded)并且让接手的人都能轻易地了解资料型态,这里记录一些过程中的发现。结论是应该使用 as const 来达成列举资料管理,因为它更加直觉没有什么认知负担,并且更加灵活。
为什么如今网站大多数都长得差不多,就连体验也差不多?我们时常会联想设计网页是一门富含创意创新的工作,但对使用者来说创新并不全然是一件好事。本篇文章希望引导读者了解网页发展的经历并推导出为什么「无聊的使用者介面是好的使用者体验」这个结论。
身为前端工程近期工作的感悟是很多时候开发问题还是陷于界面的外观、行为或互动层面上,并不是说花时间制作这些层面的事情就很逊,它们实际需要依靠经验丰富的开发者通过多方面的研究与考量才能打造合理的架构,例如有许多要留意的事:性能、适用性、可维护性、可测试性、搜索引擎优化、跨平台兼容性、多语言……
AI 并不会离开我们的生活,并且只会越来越普及,这也意味着我们的生活将受到影响。什么事情是人类能 AI 不能的?未来的工作会是怎么样?人们能做什么来保证未来?什么事情是人类能 AI 不能的?未来的工作会是怎么样?人们能做什么来保证未来?思考以上问题。
Lighthouse 是一款开源的自动化网页性能检测工具,通常在遇到网页性能问题时才逐个打开网页测试,手动测试总是会有:单次的测试结果不稳定、耗时费力、不利于团队开发的问题,今天来尝试使用 Lighthouse CI 自动化在每次代码更动时检测网页的性能问题吧!
不到 3 步骤让你的网站拥有以 WebAssembly 高效驱动的客制化搜寻功能。静态网站像是部落格、文件、个人网站、公司网站……等这类阅读体验为主的网站通常都有搜寻内容的需求,恰逢 Pagefind 1.0 的推出我把原先自制的fuse.js 搜寻功能换成Pagefind,分享如何在任何静态网站上加入搜寻功能。
近期工作接触使用 Shadcn for Vue 来打造网页 UI,这是一款基于 Tailwind 可弹性客制化的组件组合,让我们可以快速建立出符合需求的网页界面。本文将介绍现有样式库的问题及 Shadcn UI 的特色,以及为什么在前端圈这么火爆。
表单是是网站中最常见的功能性元素也是与用户沟通的桥梁,像是购买商品、注册会员、问卷填写……等各项行动都离不开它,然而这么重要的体验却时常被忽略,于是我决定整理一个良好的表单应该具备的体验以及为什么应该这样设计,供所有人了解常见的表单设计问题。
JavaScript 有 try...catch 语法用于捕捉程序中的错误情境,在需要时使用 throw 语法来抛出「任何错误」,通常建议会抛出 JS 默认的错误对象,但在 TypeScript 要怎么做才能确保抛出的错误的类型?
Zod 是以 TypeScript 为首的 Schema 声明和验证库,为什么有了 TypeScript 还需要 Zod?轻易的撰写运行时数据验证就是 Zod 的目的,像是验证第三方 API 传递的数据、用户输入在 URL 中或表单中的数据使用 Zod 来验证都很方便。
最近阅读 Stay SasSy 提到的 Goals, Problem, Solutions 猛然察觉这不是我日常工作拆分问题的方式吗!简直是不谋而合,正好也想写一篇文章来分享这个达成共识的方法,同时这也是一个很好向上沟通的方式,不管是对团队还是对上级沟通都有帮助。
网页原先是静态文件,但随着需求增加,动态的改动网页的状态已变得普遍,随意使用 `disabled` 属性就像是在用户路上堵上一颗巨石,这样的设计不仅无法帮助用户解决问题,还会让用户感到困惑。我们应该尽全力让用户知道问题原因,而不是只做到「阻止用户的错误行为」。