嗯,我的代码没有else系列,一个设计模式业务真实使用的golang系列。 ? 前言 本系列主要分享,如何在我们的真实业务场景中使用设计模式。...关于怎么用,完全可以生搬硬套我总结的使用设计模式的四个步骤: 业务梳理 业务流程图 代码建模 代码demo 业务梳理 我通过历史上接触过的各种抽奖场景(红包雨、糖果雨、打地鼠、大转盘(九宫格)、考眼力、...------------ //我的代码没有`else`系列 //模板模式 //@auhtor TIGERB //------------------...//------------------------------------------------------------ //我的代码没有`else`系列 //模板模式 //@auhtor TIGERB...我的代码没有`else`,只是一个在代码合理设计的情况下自然而然无限接近或者达到的结果,并不是一个硬性的目标,务必较真。 2.
嗯,我的代码没有else系列,一个设计模式业务真实使用的golang系列。 ? 前言 本系列主要分享,如何在我们的真实业务场景中使用设计模式。...关于怎么用,完全可以生搬硬套我总结的使用设计模式的四个步骤: 业务梳理 业务流程图 代码建模 代码demo 业务梳理 按照如上某东的订单结算页面的示例,我们得到了如下的订单结算页面模块组成图: ?...----------------------- //我的代码没有`else`系列 //组合模式 //@auhtor TIGERB //-------...我的代码没有`else`,只是一个在代码合理设计的情况下自然而然无限接近或者达到的结果,并不是一个硬性的目标,务必较真。 2....---- 我的代码没有else系列 更多文章 代码模板 | 我的代码没有else 链式调用 | 我的代码没有else 点击https://github.com/TIGERB/easy-tips/tree
我最初写了这样的代码:for (int i = 0; i > i) & 1) 为什么会出现错误?...我的代码为什么出错?...叠加后: 0xF50000FF (错误结果)正确做法:必须初始化 dwOutChlCtrl = 0。...正确的解决方案修正后的代码#include // 使用标准无符号类型uint32_t bit_reverse(uint32_t x) { uint32_t reversed
嗯,我的代码没有else系列,一个设计模式业务真实使用的golang系列。 ? 前言 本系列主要分享,如何在我们的真实业务场景中使用设计模式。...关于怎么用,完全可以生搬硬套我总结的使用设计模式的四个步骤: 业务梳理 业务流程图 代码建模 代码demo 业务梳理 步骤 逻辑 1 参数校验 2 获取地址信息 3 地址信息校验 4 获取购物车数据 5...代码demo package main //--------------- //我的代码没有`else`系列 //责任链模式 //@auhtor TIGERB我的代码没有`else`,只是一个在代码合理设计的情况下自然而然无限接近或者达到的结果,并不是一个硬性的目标,务必较真。 2....---- 我的代码没有else系列 更多文章 代码模板 | 我的代码没有else 点击https://github.com/TIGERB/easy-tips/tree/master/go/src/patterns
嗯,我的代码没有else系列,一个设计模式业务真实使用的golang系列。 ? 前言 本系列主要分享,如何在我们的真实业务场景中使用设计模式。...代码demo package main //------------------------------------------------------------ //我的代码没有`else`系列...我的代码没有`else`,只是一个在代码合理设计的情况下自然而然无限接近或者达到的结果,并不是一个硬性的目标,务必较真。 2....---- 我的代码没有else系列 更多文章 代码模板 | 我的代码没有else 链式调用 | 我的代码没有else 代码组件 | 我的代码没有else 订阅通知 | 我的代码没有else 客户决策...| 我的代码没有else
嗯,我的代码没有else系列,一个设计模式业务真实使用的golang系列。 ? 前言 本系列主要分享,如何在我们的真实业务场景中使用设计模式。...关于怎么用,完全可以生搬硬套我总结的使用设计模式的四个步骤: 业务梳理 业务流程图 代码建模 代码demo 业务梳理 注:本文于单体架构背景探讨业务的实现过程,简单容易理解。...代码demo package main //------------------------------------------------------------ //我的代码没有`else`系列...我的代码没有`else`,只是一个在代码合理设计的情况下自然而然无限接近或者达到的结果,并不是一个硬性的目标,务必较真。 2....---- 我的代码没有else系列 更多文章 代码模板 | 我的代码没有else 链式调用 | 我的代码没有else 代码组件 | 我的代码没有else 点击https://github.com/
嗯,我的代码没有else系列,一个设计模式业务真实使用的golang系列。 ? 前言 本系列主要分享,如何在我们的真实业务场景中使用设计模式。...------------ //我的代码没有`else`系列 //策略模式 //@auhtor TIGERB //------------------...") } // 支付 instance.Pay(ctx) } 代码运行结果: [Running] go run ".....我的代码没有`else`,只是一个在代码合理设计的情况下自然而然无限接近或者达到的结果,并不是一个硬性的目标,务必较真。 2....---- 我的代码没有else系列 更多文章 代码模板 | 我的代码没有else 链式调用 | 我的代码没有else 代码组件 | 我的代码没有else 订阅通知 | 我的代码没有else
已经过去4年了,q群里已经有1年没人在里面聊天了,他还在,大家总会想起他,看过第一篇“我不曾忘记的初心的-10年”文章的朋友, 应该记得2011年我进入了通行行业的公司,在那里认识了一位鹏飞兄弟,当时我是负责带一个...2014年10月份鹏飞当天一天都感觉不怎么舒服头很难受,在北京的一个城中村找了家小诊所看了看,量量血压,结果万万没想到低压140,高压180,小诊所的医生都吓坏了替他拨打了120,直接送到了北京协和医院...也就是这最后一面注定是从此两人阴阳相隔,迪迪和胖孩穿着防护服进入见到了鹏飞,鹏飞眼角留下眼泪,嘴已经说不出话了,只是左手一直向外摆赶他们走,迪迪他们当时看到这种情况也很难过,他们一直嘱咐他好好养病慢慢就好了,别的别操太多心(迪迪给我讲这段的时候很哽咽...离开病房的那一刻迪迪和胖孩抱在一起哭了,没有想到一起来北京成为北漂的他们,战友变成了这样。...其实我在写这篇文章的时候征求了迪迪的意见,他建议不加这句话,会影响你的阅读和转发,很多人的朋友圈里面都有自己的领导和老板,但是我对迪迪说,难道员工身体好不是公司的财富吗,码农的定位并不是要让自己当码农,
随后,我们开始用C语言编写一个新排序函数库,并且考虑了许多不同的算法,包括合并排序(Merge Sort)和堆排序(Heap Sort)等算法。...考虑到通过缩减代码量所得到的好处,我最后以第三种方式来问自己在本章之初提出的问题。“你没有编写过的最漂亮代码是什么?”。我如何使用非常少的代码来实现大量的功能?...在3-1给出了最初的结果行。...对于那些想要得到更具体信息的人们,我在下面给出了一些观点,这些观点分为三类 程序分析 深入理解程序行为的方式之一就是修改这个程序,然后在具有代表性的数据上运行这个程序,就像示例3-2那样。...小段代码 我相信计算机编程是一项实践性的技术,并且我也同意这个观点:“任何技术都必须通过模仿和实践来掌握。” 因此,想要编写漂亮代码的程序员应该阅读一些漂亮的程序以及在编写程序时模仿所学到的技术。
在C/C++编程中,通常将函数声明、宏定义、结构体定义等内容放在头文件内,在使用这些内容的文件内包含该头文件,这样可以大幅提高代码的可读性和可维护性。...#endif // HEADER_FILE_H 在这个例子中: #ifndef HEADER_FILE_H检查是否已经定义了HEADER_FILE_H宏,如果没有定义,就执行后续的代码。...#pragma once的限制 虽然#pragma once在某些情况下看起来非常诱人,但它有一些潜在的问题,导致我建议团队避免使用它: 不符合标准:#pragma once是编译器特有的扩展,而不是C...这意味着即使你的代码在一个编译器上工作正常,另一个编译器上可能会遇到问题,特别是在旧版编译器中,可能没有对#pragma once的支持。...尽管使用宏和#pragma once都可以防止头文件被重复包含,但是我们要站在发展的眼光写代码,尽管当前的大部分编译器已经支持#pragma once,但是不敢保证所有的编译器都已支持,即使现在的编译器支持
("3".equals(status)) { return "自驾"; } else if("4".equals(status)) { return "步行"; } if语句 上面的代码有什么问题呢...关于DDD领域驱动设计,推荐书籍: “《领域驱动设计:软件核心复杂性应对之道》 《实现领域驱动设计》 ” 为什么我们在使用贫血模型 看了上面的代码,我们可能会疑问:我使用贫血模型开发挺好的啊?...因此我总结为什么人们更愿意使用贫血模型呢: “ 充血模型相对贫血模型存在一定的设计难度,你需要多花时间思考哪些是对象本身的行为 面向过程的编程思想根深蒂固,很难改变 对代码没有太大负责态度,认为怎么简单怎么来...在复杂的系统中,我们使用贫血模型(面向过程思维)开发,那最后的结果是 点连成线,线交织成网,密密麻麻不可维护 然而我们大部分负责的系统并不复杂,我的建议是: 朝充血模型思维方式靠齐 我的思考 如果你还在抱怨自己的工作只是简单...那么建议你多做一些的思考: 1.我的代码是不是面向对象的代码 2.我的代码设计是否遵循 高内聚,低耦合的设计标准 3.我的代码是否遵循设计原则,如单一职责原则,开闭原则等 4. ...
关于if-else的争议 我之前写了一篇文章《我用规则引擎消除if语句,提高了代码的可扩展性》,这篇文章我想阐述的观点是复杂的if语句可能会影响代码的阅读和代码的扩展性,会将非业务的条件逻辑与业务逻辑混合在一起...读者大部分不赞成使用设计模式的原因是:if-else能看懂,设计模式可能会看不懂,觉得这是一个没有必要的纠结。...这里我要阐明我的一个观点: “我的观点并不是说,我们在编码时不能使用if-else,而是说我们不应该简陋地用if-else去实现业务的分支流程,因为这样随意的代码堆砌很容易堆出一座座"屎山"。...” 当我们存在不同的业务逻辑时,我们通常习惯使用if-else来实现这些不同的逻辑,时间长了,代码就会难以维护。我相信大部分人写过下面类似的代码。...屎山代码雏形 上面的代码(基于实际项目的伪代码),大家看了后有什么感想。如果我们需要修改上面的条件逻辑,我相信编码者本人都会被这样的代码绕晕,更不用说后面接手的开发了。
return configService.add(); }很多人都觉得技术也很简单,没有什么特别的地方,但是,实现这个代码框架之前,就是要你的接口的统一的格式ResultBean,aop才好做。...同样,如果我后面的关于习惯和规范的帖子,你重点还是放在技术上的话,那是丢了西瓜捡芝麻,有很多贴还是没有任何技术点呢。...Controller规范上面2段代码,第一个是原生态的,第2段是我指定了接口定义规范,使用AOP技术之后最终交付的代码,从15行到1行,自己感受一下。接下来说说大家关注的AOP如何实现。...around method="handlerControllerMethod" pointcut-ref="target" /> 现在知道为什么要返回统一的一个...请对比 吐槽我见过的最烂的java代码里面原来的代码查看,没有对比就没有伤害。 最后说一句,先有统一的接口定义规范,然后有AOP实现。先有思想再有技术。
return configService.add(); } 很多人都觉得技术也很简单,没有什么特别的地方,但是,实现这个代码框架之前,就是要你的接口的统一的格式ResultBean,aop才好做...同样,如果我后面的关于习惯和规范的帖子,你重点还是放在技术上的话,那是丢了西瓜捡芝麻,有很多贴还是没有任何技术点呢。...Controller规范 上面2段代码,第一个是原生态的,第2段是我指定了接口定义规范,使用AOP技术之后最终交付的代码,从15行到1行,自己感受一下。接下来说说大家关注的AOP如何实现。...around method="handlerControllerMethod" pointcut-ref="target" /> 现在知道为什么要返回统一的一个...请对比 吐槽我见过的最烂的java代码里面原来的代码查看,没有对比就没有伤害。 最后说一句,先有统一的接口定义规范,然后有AOP实现。先有思想再有技术。
随着多核架构的普及,并发编程已成为开发者不可或缺的核心技能。在学习过程中,开发者常会遇到这样的困惑:正确编写的单线程代码,为何在并发环境下可能瞬间失效?看似有序的语句执行后,为何结果却混乱不堪?...同时,通过剖析工程实践中常见的并发异常,并追溯其根本原因,帮助读者构建对并发编程本质的系统理解。并发之谜:为何我的代码背叛了我?...主要原因可以归结为两点:首先,处理器与内存之间对共享变量的处理速度存在差异,这会导致可见性问题。其次,编译器和处理器可能会对代码指令进行重排序优化,从而导致有序性问题。可见性:你看到的是真相吗?...现在再回来看上面代码,那么可以得到四种结果:1)假设处理器A对变量a赋值,但没及时回写内存。处理器B对变量b赋值,且及时回写内存。处理器A从内存中读到变量b最新值。...那么这时结果是:x等于0,y等于0;4)假设处理器A和B,都及时回写变量a和b值到内存,且从内存中读到变量a和b的最新值。那么这时结果是:x等于2,y等于1。
今日推荐文章:API调用中的身份验证与授权实践-腾讯云开发者社区-腾讯云 点评:深入探讨了API调用的身份认证与授权的问题,并给出了实现,非常值得学习 一、介绍 在二战期间,加密大大添加破解的难度。...那么我们不妨按下开关,会发生什么情况 当按下开关A,灯泡B亮了 当按下开关B,灯泡C亮了 当按下开关C,灯泡A亮了 到了这一步,你已经初步理解了Enigma密码机是如何工作的了,我在上面仅仅只有3个开关...、中间转子、右边转子 电流再次经过接插板(再看一遍混淆连线情况,有混淆的会以混淆的字母继续往后走) 这时候连接到对应的灯泡了,电流再经过电池 电路闭合,对应的灯泡亮起 三、Java代码还原 1)转子组...Constant.SIZE; return currentPosition == initPosition; } } } 2)插接板 插接板的代码比较简单...首先计算出了当前转子偏移量, 再计算出当前转子输入字符的位置是哪个触点 获取到当前触点,经过映射之后的字符 再计算出映射之后字符的触点位置 将这个信息返回出去,回到转子组可以看到,带着这个触点位置的信息
还记得当初为什么选择计算机?我的代码人生旅程 摘要 在这篇博客中,我将探讨计算机科学的魅力、编程的乐趣和技术对个人成长的影响。...引言 大家好,我是猫头虎博主,今天和大家分享我的计算机之旅。自从我选择了计算机,我的生活就像是打开了一扇通往未知世界的大门。让我们一起探索这个充满可能的领域吧! 1. 我为什么选择计算机行业?...我现在还从事计算机相关行业吗? 2.1 持续的热情与挑战 没错,我依然热爱这个行业。现在,我不仅仅是编写代码,还在探索人工智能、大数据等前沿技术。每一天都充满了新的挑战和机遇。...2.2 从学习者到分享者 我开始撰写技术博客,分享我在这个领域的所学所感。我希望我的经验能够帮助到正如当年的我一样的编程初学者。 3. 计算机对我的人生道路有何帮助?...它既带给我挑战,也带来了无限的乐趣和成长的机会。
5 道题征集代码界前 3% 的超级王者》——看到这个标题,我内心非常非常激动,因为终于可以证明自己技术很牛逼了。 但遗憾的是,凭借 8 年的 Java 开发经验,我发现这五道题自己全解错了!...1.0f - 0.9f 的结果为 0.1f,0.9f - 0.8f 的结果为 0.1f,那自然a == b 啊。 但实际的结果竟然不是这样的,太伤自尊了。...无非是把原始类型的 float 转成了包装器类型 Float,并且使用equals 替代== 进行判断。 这一次,我以为包装器会解决掉精度的问题,所以我猜想输出结果为true 。...但结果再次打脸——虽然我脸皮厚,但仍然能感觉到脸有些微微的红了起来。...为什么呢? 我翻了翻 JDK 的官方文档,看到其中有这样一句描述,我直接搬过来大家看一眼就明白了。
记得在一次基于一款平台的二次开发项目中,因为 bug 实在太多,我们几乎拿出了一整个里程碑的周期来 debug,于是我这个 DM 有了新的解释:Debug Man。...,要这么说的话,会直接被怼回来:“你丫的自己不会用吧!”。 你可以换个说法:“咦,这里好像不对,是我操作错了吗?”,这时程序员心里就一咯噔:“Shit...不会是我代码有 bug 吧?”...文中作者抛出了一个案例:用 Visual Studio 构建一个 Windows GUI 程序时没有采用系统默认字体。这个算不算一个 bug 呢? 不好说。...如今的计算机用户已经被宠坏了,在这样的时代下,bug 早已悄悄地泛化了。 所以,到底如何才能写出没有 bug 的代码呢? 答案:不写代码。 一个悲观又绝望却正确的唯一解。...5.为什么要追求无 bug 呢? 可是,如果真的只能不写代码了,那么本身就已经没有女朋友的程序员们,现在连代码也没有了,这还让不让人活了? 不能这样把程序员们给逼死了,要讲人权。
不知道小伙伴们有没有遇到过标题的问题,明明同样的一套代码,在自己本地就是运行不起来,或者说在本地只改了一个无关痛痒的代码,看上去人畜无害,结果就报各种乱七八糟的错误,但是同事却能运行的好好的。...检查了各种情况都没有问题,搞的都要怀疑人生了。 阿粉就遇到过,特别是在刚入职场的时候,有几次遇到这样的问题,还差点搞起来乌龙。...因为有的时候可能是最后一次提交的代码有问题,但是同事并没有拉取有问题的代码,这时候的表现就是同事能正确运行,但是自己的不行。...确保环境正确 如果说同事是真的能运行成功,而且自己确实没有改动任何一行代码,那毫无疑问就是环境问题。...本地的 JDK 版本是否正确;链接的公司网络是否正确,有的公司会严格区别办公网络和访客网络;Maven 版本是否正确,如果是新拉取的代码库可能是网络问题导致很多依赖没有下载成功,因为第一次加载项目依赖还是比较费时的