[{"content":"七月 25 号天气晴 七月二十五号，天气晴。\n阳光很好，透过窗户洒在桌面上，像一层薄薄的金箔。这样的天气总让人心情不自觉地轻快起来。\n晴日随想 晴天是个好日子，适合做点一直想做却搁置的事：\n出去走走，晒晒太阳 整理一下最近的思绪 读几页搁置已久的书 写点东西，记录当下 日拱一卒 就像博客首页写的那句话——Think. Code. Grow.\n日拱一卒，功不唐捐。晴朗的日子，更要好好把握。\n愿每个晴天，都不被辜负。☀️\n","permalink":"https://huan11.github.io/posts/blog/july-25-sunny/","summary":"\u003ch1 id=\"七月-25-号天气晴\"\u003e七月 25 号天气晴\u003c/h1\u003e\n\u003cp\u003e七月二十五号，天气晴。\u003c/p\u003e\n\u003cp\u003e阳光很好，透过窗户洒在桌面上，像一层薄薄的金箔。这样的天气总让人心情不自觉地轻快起来。\u003c/p\u003e\n\u003ch2 id=\"晴日随想\"\u003e晴日随想\u003c/h2\u003e\n\u003cp\u003e晴天是个好日子，适合做点一直想做却搁置的事：\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e出去走走，晒晒太阳\u003c/li\u003e\n\u003cli\u003e整理一下最近的思绪\u003c/li\u003e\n\u003cli\u003e读几页搁置已久的书\u003c/li\u003e\n\u003cli\u003e写点东西，记录当下\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"日拱一卒\"\u003e日拱一卒\u003c/h2\u003e\n\u003cp\u003e就像博客首页写的那句话——\u003cstrong\u003eThink. Code. Grow.\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e日拱一卒，功不唐捐。晴朗的日子，更要好好把握。\u003c/p\u003e\n\u003cp\u003e愿每个晴天，都不被辜负。☀️\u003c/p\u003e","title":"七月 25 号天气晴"},{"content":"List 1 Uncle Bob Refactoring: Improving the Design of Existing Code\nhttps://learning.oreilly.com/library/view/refactoring-improving-the/9780134757681/toc.xhtml\nChapter 3: Bad Smells in Code\n## Bad Smell 1 Mysterious Name 2 Duplicated Code 3 Long Function 4 Long Parameter List 5 Global Data 6 Mutable Data 7 Divergent Change 8 Shotgun Surgery 9 Feature Envy 10 Data Clumps 11 Primitive Obsession 12 Repeated Switches 13 Loops 14 Lazy Element 15 Speculative Generality 16 Temporary Field 17 Message Chains 18 Middle Man 19 Insider Trading 20 Large Class 21 Alternative Classes with Different Interfaces 22 Data Class 23 Refused Bequest 24 Comments List 2 郑烨 ## 代码坏味道 1 命名不规范 2 乱用英语 3 重复代码 4 长函数 5 大类 6 长参数列表 7 滥用控制语句 8 缺乏封装 9 可变的数据 10 变量声明与赋值分离 11 依赖混乱 12 不一致的代码 13 落后的代码风格 命名 乱用英语 重复代码 长函数 大类 长参数列表 滥用控制语句 缺乏封装 可变的数据 变量声明与赋值分离 依赖混乱 不一致的代码 落后的代码风格 ","permalink":"https://huan11.github.io/posts/tdd/bad_smells/","summary":"\u003ch2 id=\"list-1-uncle-bob\"\u003eList 1 Uncle Bob\u003c/h2\u003e\n\u003cp\u003eRefactoring: Improving the Design of Existing Code\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e\u003ca href=\"https://learning.oreilly.com/library/view/refactoring-improving-the/9780134757681/toc.xhtml\"\u003ehttps://learning.oreilly.com/library/view/refactoring-improving-the/9780134757681/toc.xhtml\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://learning.oreilly.com/library/view/refactoring-improving-the/9780134757681/ch03.xhtml#ch03\"\u003eChapter 3: Bad Smells in Code\u003c/a\u003e\u003c/p\u003e\u003c/blockquote\u003e\n\u003ctable\u003e\n  \u003cthead\u003e\n      \u003ctr\u003e\n          \u003cth\u003e##\u003c/th\u003e\n          \u003cth\u003eBad Smell\u003c/th\u003e\n      \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e1\u003c/td\u003e\n          \u003ctd\u003eMysterious Name\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e2\u003c/td\u003e\n          \u003ctd\u003eDuplicated Code\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e3\u003c/td\u003e\n          \u003ctd\u003eLong Function\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e4\u003c/td\u003e\n          \u003ctd\u003eLong Parameter List\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e5\u003c/td\u003e\n          \u003ctd\u003eGlobal Data\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e6\u003c/td\u003e\n          \u003ctd\u003eMutable Data\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e7\u003c/td\u003e\n          \u003ctd\u003eDivergent Change\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e8\u003c/td\u003e\n          \u003ctd\u003eShotgun Surgery\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e9\u003c/td\u003e\n          \u003ctd\u003eFeature Envy\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e10\u003c/td\u003e\n          \u003ctd\u003eData Clumps\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e11\u003c/td\u003e\n          \u003ctd\u003ePrimitive Obsession\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e12\u003c/td\u003e\n          \u003ctd\u003eRepeated Switches\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e13\u003c/td\u003e\n          \u003ctd\u003eLoops\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e14\u003c/td\u003e\n          \u003ctd\u003eLazy Element\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e15\u003c/td\u003e\n          \u003ctd\u003eSpeculative Generality\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e16\u003c/td\u003e\n          \u003ctd\u003eTemporary Field\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e17\u003c/td\u003e\n          \u003ctd\u003eMessage Chains\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e18\u003c/td\u003e\n          \u003ctd\u003eMiddle Man\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e19\u003c/td\u003e\n          \u003ctd\u003eInsider Trading\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e20\u003c/td\u003e\n          \u003ctd\u003eLarge Class\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e21\u003c/td\u003e\n          \u003ctd\u003eAlternative Classes with Different Interfaces\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e22\u003c/td\u003e\n          \u003ctd\u003eData Class\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e23\u003c/td\u003e\n          \u003ctd\u003eRefused Bequest\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e24\u003c/td\u003e\n          \u003ctd\u003eComments\u003c/td\u003e\n      \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2 id=\"list-2-郑烨\"\u003eList 2 郑烨\u003c/h2\u003e\n\u003ctable\u003e\n  \u003cthead\u003e\n      \u003ctr\u003e\n          \u003cth\u003e##\u003c/th\u003e\n          \u003cth\u003e代码坏味道\u003c/th\u003e\n      \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e1\u003c/td\u003e\n          \u003ctd\u003e命名不规范\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e2\u003c/td\u003e\n          \u003ctd\u003e乱用英语\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e3\u003c/td\u003e\n          \u003ctd\u003e重复代码\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e4\u003c/td\u003e\n          \u003ctd\u003e长函数\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e5\u003c/td\u003e\n          \u003ctd\u003e大类\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e6\u003c/td\u003e\n          \u003ctd\u003e长参数列表\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e7\u003c/td\u003e\n          \u003ctd\u003e滥用控制语句\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e8\u003c/td\u003e\n          \u003ctd\u003e缺乏封装\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e9\u003c/td\u003e\n          \u003ctd\u003e可变的数据\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e10\u003c/td\u003e\n          \u003ctd\u003e变量声明与赋值分离\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e11\u003c/td\u003e\n          \u003ctd\u003e依赖混乱\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e12\u003c/td\u003e\n          \u003ctd\u003e不一致的代码\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e13\u003c/td\u003e\n          \u003ctd\u003e落后的代码风格\u003c/td\u003e\n      \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3 id=\"命名\"\u003e命名\u003c/h3\u003e\n\u003cp\u003e\u003cimg alt=\"img\" loading=\"lazy\" src=\"https://static001.geekbang.org/resource/image/4e/66/4e725dfea2eeb16ef0f654813ca42066.jpg?wh=2284*3156\"\u003e\u003c/p\u003e","title":"Bad Smell"},{"content":"Dependencies Setup static blog\nGit https://git-scm.com/downloads Hugo https://github.com/gohugoio/hugo [optional] markdown editor: Typora Automatic Deploy\nGitHub Action https://docs.github.com/en/actions/quickstart How to set up Static Blog? Setup static blog(3 steps) Reuse the others framework\nhttps://github.com/xyming108/sulv-hugo-papermod\npreview : https://www.sulvblog.cn/\nstep 1 clone\ngit clone https://github.com/xyming108/sulv-hugo-papermod.git step2 download theme\ngit submodule update --init Step3 start the\nhugo server -D Deploy automatically( steps) Step create GitHub repo(must public)\nStep set up GitHub upstream\ngit remote add origin git@github.com:huan11/huan11.github.io.git Step Add your notes and push the changes\ngit add . git commit -m \u0026#34;add my notes\u0026#34; git push Eg:\nCheck the changes have been pushed to GitHub\nStep config GitHub action\n","permalink":"https://huan11.github.io/posts/blog/set-up-blog/","summary":"\u003ch1 id=\"dependencies\"\u003eDependencies\u003c/h1\u003e\n\u003cp\u003eSetup static blog\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003eGit \u003ca href=\"https://git-scm.com/downloads\"\u003ehttps://git-scm.com/downloads\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHugo \u003ca href=\"https://github.com/gohugoio/hugo\"\u003ehttps://github.com/gohugoio/hugo\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[optional] markdown editor: Typora\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003eAutomatic Deploy\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003eGitHub Action \u003ca href=\"https://docs.github.com/en/actions/quickstart\"\u003ehttps://docs.github.com/en/actions/quickstart\u003c/a\u003e\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch1 id=\"how-to-set-up-static-blog\"\u003eHow to set up Static Blog?\u003c/h1\u003e\n\u003ch2 id=\"setup-static-blog3-steps\"\u003eSetup static blog(3 steps)\u003c/h2\u003e\n\u003cp\u003eReuse the others framework\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/xyming108/sulv-hugo-papermod\"\u003ehttps://github.com/xyming108/sulv-hugo-papermod\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003epreview : \u003ca href=\"https://www.sulvblog.cn/\"\u003ehttps://www.sulvblog.cn/\u003c/a\u003e\u003c/p\u003e\u003c/blockquote\u003e\n\u003cp\u003estep 1 clone\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003egit clone https://github.com/xyming108/sulv-hugo-papermod.git\n\u003c/code\u003e\u003c/pre\u003e\u003cp\u003estep2 download theme\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003egit submodule update --init\n\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eStep3 start the\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003ehugo server -D\n\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"deploy-automatically-steps\"\u003eDeploy automatically( steps)\u003c/h2\u003e\n\u003cp\u003eStep create GitHub repo(must public)\u003c/p\u003e\n\u003cp\u003e\u003cimg alt=\"image-20240727090114870\" loading=\"lazy\" src=\"/posts/blog/set-up-blog/img/image-20240727090114870.png\"\u003e\u003c/p\u003e\n\u003cp\u003e\u003cimg alt=\"image-20240727090210786\" loading=\"lazy\" src=\"/posts/blog/set-up-blog/img/image-20240727090210786.png\"\u003e\u003c/p\u003e\n\u003cp\u003eStep set up GitHub upstream\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003egit remote add origin git@github.com:huan11/huan11.github.io.git\n\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eStep Add your notes and push the changes\u003c/p\u003e","title":"How to set up Static Blog?"},{"content":"LLM 智谱 官网体验平台 https://bigmodel.cn/\n文档 https://zhipu-ai.feishu.cn/wiki/YInmwPmyii67VRkzU3BchPNzncg\nHugging Face 开源模型 https://huggingface.co/collections/THUDM/\n最新动态\n官网 https://www.zhipuai.cn/news/ ","permalink":"https://huan11.github.io/posts/tools/ai_frequent_tools/","summary":"\u003ch1 id=\"llm\"\u003eLLM\u003c/h1\u003e\n\u003ch2 id=\"智谱\"\u003e智谱\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e官网体验平台 \u003ca href=\"https://bigmodel.cn/\"\u003ehttps://bigmodel.cn/\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e文档 \u003ca href=\"https://zhipu-ai.feishu.cn/wiki/YInmwPmyii67VRkzU3BchPNzncg\"\u003ehttps://zhipu-ai.feishu.cn/wiki/YInmwPmyii67VRkzU3BchPNzncg\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eHugging Face 开源模型 \u003ca href=\"https://huggingface.co/collections/THUDM/\"\u003ehttps://huggingface.co/collections/THUDM/\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e最新动态\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e官网 \u003ca href=\"https://www.zhipuai.cn/news/\"\u003ehttps://www.zhipuai.cn/news/\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e","title":"国内 AI 工具集"},{"content":"全面拥抱 AI 他山之石，可以攻玉（巨人肩膀） 阿里： 通义灵码\nhttps://tongyi.aliyun.com/lingma/download\n","permalink":"https://huan11.github.io/posts/ai/%E5%85%A8%E9%9D%A2%E6%8B%A5%E6%8A%B1ai/","summary":"\u003ch1 id=\"全面拥抱-ai\"\u003e全面拥抱 AI\u003c/h1\u003e\n\u003ch2 id=\"他山之石可以攻玉巨人肩膀\"\u003e他山之石，可以攻玉（巨人肩膀）\u003c/h2\u003e\n\u003cp\u003e阿里： 通义灵码\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e\u003ca href=\"https://tongyi.aliyun.com/lingma/download\"\u003ehttps://tongyi.aliyun.com/lingma/download\u003c/a\u003e\u003c/p\u003e\u003c/blockquote\u003e","title":"全面拥抱 AI"}]