欢迎来到我的博客,本博客主要分享 WEB 开发的一些学习经历。以及我个人读书的思考和对生活的感悟。
-
本博客也会涉及一些对于编程思想的介绍和开发工具的一些好用的插件及进阶用法。
-
如果博客里的文章引发了你的思考,欢迎你与我交流。
欢迎来到我的博客,本博客主要分享 WEB 开发的一些学习经历。以及我个人读书的思考和对生活的感悟。
本博客也会涉及一些对于编程思想的介绍和开发工具的一些好用的插件及进阶用法。
如果博客里的文章引发了你的思考,欢迎你与我交流。
目前我们公司已经深度的使用 Docker 来部署项目,在推进 Docker 落地的过程中,如何将 Docker 的配置文件更好的融入项目一直是困扰着我们的问题。 刚开始我们把 Docker 配置文件全部一股脑地放在项目里, 使编程架构和部署架构给混在了一起,如果开发和部署是一拨人倒还好,如果开发和部署是分开的两个工种,这种方式会造成一定程度的混乱。 以我们 Laravel 项目目录结构为例 . ├── app ├── artisan ├── bootstrap ├── composer.json ├── composer.lock ├── config ├── database ├── docker ├── docker-compose.yml ├── Dockerfile ├── .editorconfig ├── .env.example ├── .git ├── .gitattributes ├── .gitignore ├── .gitlab-ci.yml ├── package.json ├── .php-cs-fixer.cache ├── phpunit.xml ├── public ├── README.md ├── resources ├── rolling-update.sh ├── routes ├── storage ├── tests ├── vendor └── vite.config.js ...
最近在公司搭建最新版本的 Laravel 开发环境,对 docker 部署进行了进一步的优化,我们之前的项目是把定时任务 Cron 和 API 在同一个容器里启动的,这显然不太符合容器的最佳实践,借着这次框架搭建的契机,我决定优化一下这个问题。 环境如下: Laravel : 12 PHP : 8. 4 我们把项目跑在两个容器里,一个是 API 的容器,另一个是 Supervisor 的容器,把 Cron 和 Jobs 放在放在 Supervisor 里执行。 这样就能避免维护过多的容器。在后期做 CI/CD 也会更加方便。 Supervisor 使用和 PHP 一样的 Dockerfile 因为 Supervisor 会用到 PHP 环境来起 Laravel 的 Jobs。 整体方案就是这样来做的,比较简单, 文末我会放一个 git 仓库地址,感兴趣的可以可以进一步了解,接下来讲讲一些细节。 Cron 的配置我们放在了 Dockerfile 里来配置,当然你也可以放在 entrypoint.sh 里来做。 RUN echo "* * * * * /usr/local/bin/php /var/www/artisan schedule:run >> /var/log/cron.log 2>&1" | crontab - 我们的 docker compose 配置如下: ...
在一个博客上偶尔看到了一个博主推荐《从你的童年路过》, 这本书是一位得癌症的摄影师父亲写给儿子的书。作者希望能够将书里的内容,作为孩子将来人生路上的灯塔,为孩子迷茫时指引方向。 关于温柔 作者希望孩子做一个温柔的人,并告诉孩子温柔的前提是理解你需要真正的理解他人,并在自己能力范围内给予帮助才是温柔的对待他人。 这让我深受触动,很多时候我们都是从自己的角度去给别人建议,这种建议被作者称为温柔的虐待。作者介绍自从他的家人和朋友知道他得癌症之后,都劝他积极的治疗,多活一天是一天,作者却认为这是对他的“温柔的虐待”,让他不堪其扰——他不仅要对抗癌症带来的痛苦,还要应对周围人带来的情感负担。 与之形成鲜明对比的是作者的妻子,她不仅在作者生病期间承担了更多的家务,还鼓励他勇敢的做自己,让他想做什么就做什么。作者看到了妻子坚强的一面,一些他之前认为妻子做不到的事,妻子都能做的很好,这让作者减少了一些后顾之忧。 作者选择减少工作,疯狂的给孩子拍写真集,这是他的温柔,他希望通过照片作为纽带,像长大后的孩子表达自己对他的爱。 关于孤独 作者认为人应该要有意识的体会孤独,因为每个人最终都会孤独的走完人生最后的旅程。随着年龄的增长,我感觉人确实会越来越孤独,你正在经历的很多事情无法对他人诉说,你知道即便是说出口别人很难真正的理解,你只能将它埋在心里独自消化,慢慢的将它沉淀成你人生的厚度。 孤独的承受能力是可以训练的,我们现在的世界灯红酒绿,每天在手机里看着万千世界,看似精彩纷呈,我们每天抱着手机睡去,孤独似乎是一个很遥远的词。 我却隐隐感觉哪里不对,当有一天真正要面对孤独的时候会有巨大的无力感。适当的与电子设备保持距离,尝试一些冥想、写字,独处的发呆,有益于我们对抗孤独。 关于梦想和工作 作者认为工作是实现梦想的工具,最好的状态是你从事你热爱的事情。我很羡慕作者能够很早的就找到自己喜欢的事情。 为了鼓励他的孩子找到梦想,作者还计划在孩子 18 岁时,给孩子准备 100 万日元,由孩子自由支配。 我觉得这是一个非常有意思的计划,孩子不仅可以自由的探索世界寻找梦想,还能够比较早的驾驭金钱。这对一个刚成年的孩子来说是一个非常好的锻炼。 同时我也认为刚毕业的大学生不要考虑挣钱,找到一个自己热爱的事情更为重要。 Others “ 我儿子还有 16 年零 9 个月高中毕业 13 年零 9 个月初中毕业 10 年零 9 个月小学毕业 我却连看着他 幼儿园毕业的机会都没有了…… ” 生命就是这样,有时候能迸发出极其强大的能量,有时又显的弱小而无奈。我们都不知道明天和意外哪个先来,唯一能把握的就是过好每一个当下。 站在生死面前,能够更好的审视自己想过怎样的人生,用尽全力的过好每一天,向着心中的阳光拼命奔赴,绽放自己的光芒。
最近听孟岩播客《够与多》有很深的共鸣,我听了很多遍,在听的过程中去思考和感受,目的就是为了减少知识的缝隙。 要想回应什么是够什么是多,首先得定义我是谁,我需要一个怎样的人生,只有定义了这个才能知道什么是够,什么是多。 如何找自我 找寻自我非常难,很多人终其一生也没有找到自我。我也在找寻自我中陷入了迷茫,直到有一天 the pathless path 里的一句话,为我在黑暗中点起了一丝光亮。 你应该去做那些给你带来能量的事情,而不是消耗你能量的事情。 我们看到过很多地方告诉你要逃离舒适区,这种阐述似乎是没有什么问题,如果舒适区是一个圈,逃离的方向却有四面八方,你要怎么找到自己的方向才是更为关键的。 人生只有一次,我们的人生不该由他人定义,我们要花时间审视自己的人生,找到自己人生的方向。 时间跨度 以更大的时间跨度去思考自己的人生,会更有助于我们梳理人生的方向,段永平说:“做对的事情,把事做对。” 我觉得对我们找到自己人生的方向有很大的启发意义。 有些人可能会觉得玩游戏是自己人生的意义,我不否定这种意义,电竞已经成为奥运比赛的项目,可以看出游戏已经不像 20 年前那样被视为洪水猛兽。有很多游戏的职业选手,梦想的起点也是源于对游戏的热爱。 我们可以想象一直玩游戏十年以后的光景是什么,如果那个光景是你想要的那你就可以去把玩游戏当作自己的人生意义。 找到比别人好十倍的事情 我们也可以找到自己不用很努力就可以做的比别人好十倍的事情,这种事情一般不容易找到,你可以从今天开始主动觉察,去发现那些你比别人更擅长的事情。 也许你发现自己比别人好的并没有十倍,可能仅仅有两倍,那也没有关系,你已经比别人擅长了,去保护好这颗幼芽,持续灌溉,直到它生成为比别人好十倍的事情。 热爱的事情 巴菲特说每天跳着踢踏舞上班,可见热爱是有多么大的能量。热爱也是你能够让你做事比别人好十倍的基础之一。 热爱能让你苦中作乐,有些事情可能会让他人感到痛苦,但对你来说是攀登高峰的喜悦,你可以不断的在热爱的事情上突破,即帮助我们逃离舒适圈,又帮助我们更容易做出比别人好十倍的事情。 关于比较 人生的很多痛苦来自于比较,不必与他人对比,你有你自己的精彩。对于我们大多数人来说找到自己人生的意义,活出自己想要的人生才是最重要的。 什么是够?什么是多?每个人的标准都不一样,同样是有 80 亿,有人卧轨自杀了,有人却匿名捐到基金会帮助了更多的人,使自己的人生更有意义。 社会有很多的准则,工业社会不仅制造了更多的商品,也制造了人们想要更多的心,最开始我们买张桌子是为了满足放东西的需求,而现在我们买张桌子已经远远超过了放东西的基本需求… 商家通过各种影响,让我们陷入了消费陷阱,我们希望购买的商品去替我们说话,来展现自己是一个什么样的人。 当我们停下来审视自己时,或许会发现我们真正需要的并没有那么多,当我们明白自己真正需要的是什么的时候,我们自然也就逃离了消费主义陷阱。 努力活明白 世界太复杂,人生又太短。我们都在努力的活明白,我们想把复杂的世界以及我们复杂的行为阐述的清楚明白,这并不简单。 我一个朋友的父亲说过这样有一段很有哲理的话,大意如下 我们每个人一生都在努力活得自洽 是的,世界是矛盾的,我们自己也是矛盾的,能活的自洽,不拧巴真的是一件不容易的事情。这一生太宝贵,值得我们好好思考和规划。 建立自己的内核 当你有了稳定的内核,你就不会被其他事物牵着鼻子走,你有自己衡量生活的准则,你可以努力的活成自己想要的样子。 没有人比我更适合定义我是谁,我想过怎样的生活。知道了自己想要的生活,才不会被外来的干扰所裹挟,每个人都不相同,各有各自的精彩。 把握当下 有这么一则小故事 小和尚问师父: “师父,什么是修行?” 师父答: “饥来吃饭,困来即眠。” 小和尚疑惑: “这人人都会呀!” 师父说: “非也,世人吃饭时百般计较,睡觉时千头万绪;我则吃饭时吃饭,睡觉时睡觉。” 专注与当下应该做的事情,偶尔抬头看看目标即可。现在的社会更为嘈杂,我们的注意力已经被各种超级 APP 占用,每天面对山呼海啸的信息流,能做到专注于当下已经越来越难。 适当的冥想更加有助于我们抚慰内心的安宁,正像有句话说的那样:“你担心的事情,90 % 都不会发生。”既然这样,我们又何苦耗费心神,担心那些本就不会发生的事情呢。 最后附上一首小诗,祝大家都能找到自己: New York is 3 hours ahead of California, 在时间上,纽约走在加州前面三个小时, But it does not make California slow. 但加州并没有变慢。 Someone graduated at the age of 22, 有人 22 岁就毕业了, But waited 5 years before securing a good job! 但等了五年才找到好工作! Someone became a CEO at 25, 有人 25 岁就当上了 CEO, And died at 50. 却在 50 岁去世了。 While another became a CEO at 50, 也有人直到 50 岁才当上 CEO, And lived to 90 years. 最后活到 90 岁。 Someone is still single, 有人依然单身, While someone else got married. 而别人却早已结婚。 Obama retires at 55, 奥巴马 55 岁退任总统, But Trump starts at 70. 而川普却是 70 岁才开始当。 Absolutely everyone in this world works based on their Time Zone. 世上每个人都有自己的发展时区。 People around you might seem to go ahead of you, 身边有些人看似走在你前面, Some might seem to be behind you. 也有人看似走在你后面。 But everyone is running their own RACE, in their own TIME. 但其实每个人在自己的时区有自己的步程。 Don’t envy them or mock them. 不用嫉妒或嘲笑他们。 They are in their TIME ZONE, and you are in yours! 他们都在自己的时区,你在你的! So, Never Give up. 所以,别放松。 You’re not LATE. 你没有落后, You’re not EARLY. 你也没有领先。 You are very much ON TIME, and in your TIME ZONE Destiny set up for you. 在命运为你安排的属于你自己的时区里,一切都非常准时。 Keep fighting and stay alert, no matter how good. 好,别忘了危机与奋斗。 Keep dreaming and carry on, no matter how hard. 难,别忘了梦想与坚持。 Keep reading and exercising, no matter how busy. 忙,别忘了读书与锻炼。 Life is a long run. 人生,就是一场长跑。 ...
一个十年的 Vimmer 说在 AI 时代,Vim 的优势正在被 tab 替换掉,加上 Vim 创始人离世,对 Vim 的前景充满忧虑,考虑放弃 Vim 使用现代代码编辑器+鼠标。 我觉得选择没有对错,只有适合不适合,当下的他认为编辑器+鼠标更适合他,那这个选择对他来说就是最好的选择。 我接触 Vim 时间不长,借此机会,我想谈谈我为什么选择 Vim,我认为 Vim 的优势不在于它快,而是一整套不被打断的工作流。鼠标操作它简单高效,它降低了个人电脑的使用门槛,我觉得个人计算机的普及除了图形化界面,另一个重要的因素就是鼠标的加入。它一定程度上带来了技术平权,让计算机不至于仅仅是极客群体才能使用的工具。 程序员是一个比较特殊的群体,当他开始把头脑里设计好的方案实现时,会有很长的时间对着代码编辑器进行比较重度的输入。这期间可能会设计打开文件或者 git commit 正在实现方案中某个最小实现的 feature,此时就需要使用鼠标进行操作,一般我们在 coding 的时候,速度是相当快的,而鼠标操作相对于键盘输入是要慢一点的,我们不得不从高速输入的状态中减速,使用鼠标去完成对应的操作。 由于鼠标一般离键盘都会有一段距离,这取决于你键盘的配列,配列越大,手移动的距离就会越大。这种物理距离的存在,即便你能很高效的切换,也多少会显得有些手忙脚乱。 这种中断,对我来说不太好,为了避免这样的中断, 我开始关注 vim, 好在 lazyvim 很大程度上降低了入门门槛,在一个 YouTuber 视频的指引下,我开始进入了 lazyvim 的世界。 目前我使用下来整体感觉还是比较好的,没有什么特别明显的不适,加上 lazyvim 可以通过 Lua 编写脚本,这使 lazyvim 有了更高的可定制性,我用 Lua 写了一个代码片段的脚本,整体效果良好,同样的事情我曾经想在 VS Code 里也想做过,由于 VS Code 对代码片段限制有点大,导致我没有实现。 我也不确定 lazyvim 是不是上述状态切换的正确答案,但是它是我目前找到的比较好的答案,如果未来有其他更好的方案,我很乐意去尝试。 我看过一个 YouTuber 使用 Macbook 键盘+ touchpad 来操作,看上去感觉要比鼠标更好一些,因为它移动距离足够小,且 touchpad 的操作效率,某些场景下确实比纯键盘操作更高。 其实说到底无论什么编辑器,最终它都是一个工具,只要使用顺手就可以,无须过多纠结,当你需求产生了,你自己自然就会知道自己需要什么样的代码编辑器。