![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
编程
文章平均质量分 56
林 文
《码农修行:编写优雅代码的32条法则》作者
展开
-
PyTorch环境搭建
基于Python 3.10.4搭建PyTorch开发环境原创 2022-05-21 20:15:01 · 929 阅读 · 1 评论 -
做个广告-新书优惠
本人新书《码农修行》目前当当正在五折优惠。《码农修行:编写优雅代码的32条法则》(林文 著)【简介_书评_在线阅读】 - 当当图书原创 2021-10-23 20:16:40 · 133 阅读 · 0 评论 -
这条编程规范如何?——条件分支超过6个时必须改为接口
前面举过一个面向接口编程的例子。在系统中写日志有3种不同的实现:写到日志文件。 写到数据库。 写到本地的一个日志服务的UDP端口。按照常规的思维逻辑,可以用一种最直接的写法。如下方案一。方案一public class LogController { private LogService logservice; void writeLog(SysLogInfo logInfo){ switch(logType){ case LT_FILE: logservice.writ原创 2021-07-21 00:39:00 · 142 阅读 · 0 评论 -
别把Java写成C++的样子。你真的在正确运用依赖注入吗?
最近发现很多使用Spring框架的Java代码存在依赖注入方式的误用,甚至是滥用。因此整理了这篇文章,欢迎大家一起探讨。先举个例子,从C++说起……C++的诟病C++最遭人诟病的地方就是定义一个类需要写两个文件,一个.h文件和一个.cpp文件。例如定义一个CMainFrame类,mainframe.h内容如下:class CMainFrame : public CFrameWndEx{protected: CMainFrame();public: virtual ~CMainFram原创 2021-05-09 20:53:39 · 1297 阅读 · 20 评论 -
寻找编程的乐趣
内容简介:1.寻找编程的乐趣2.正确理解面向对象设计寻找编程的乐趣原创 2021-01-23 09:41:45 · 80 阅读 · 1 评论 -
《码农修行》法则07:避免过度防御
《码农修行》法则07:避免过度防御非法指针是C/C++程序中最令人头痛的问题之一。你也许会有类似的习惯,在函数入口即对指针的合法性进行检查。代码如下。即使在调用该函数前已经做过一次检查。代码如下。这两处检查都属于过度防御,完全没有必要。首先,参数的合法性应该由调用者保证。可以参考一些参数为指针的API,比如strncpy,当对其强制传入一个空指针时,程序并不会悄无声息,而是会抛出异常。因为这样的参数已经违反了接口的规约,函数内部不知道该如何处理,只能抛出异常让程序崩溃。此外,原创 2021-01-22 22:46:53 · 235 阅读 · 1 评论 -
善始善终
互斥锁的加锁解锁,动态内存的申请释放,都较难驾驭且容易出错。所幸我在Z和H公司所写的代码都有意或无意的避免了这两个问题。当时所涉及的是基于VxWorks的嵌入式编程,在进程调度方面系统控制层做了限制,每个进程处理完自己的消息任务后才会调度另一个进程运行,因此避免了进程并发的情况,也就无需对临界资源进行加锁。另一方面,嵌入式系统对实时性要求很高,系统中所需要的内存都在初始化时全部申请完成,并且一直不...原创 2019-09-12 17:49:58 · 171 阅读 · 0 评论 -
命名
如果你准备花一小时写代码,那么其中半小时得用于起名字。这句话虽然有些夸张,但体现出命名的重要性。的确,类名、函数名、变量名、文件名等等如果含混晦涩,会给维护工作造成麻烦。命名时把握一个原则:对于函数说明其在“做什么”,对于类或变量说明其“是什么”。言简意赅是一种理想状态。首先要用词准确,特别是对英语没把握的人,请随时查一下字典。然后把这些词拼成一个短语或短句。最后,如果名字太长,再做一些简化。...原创 2019-08-29 11:50:13 · 408 阅读 · 1 评论 -
可读性
如何提高代码的可读性是一个永恒的话题。通常认为程序员需要具备较高的“数学”功底。毕竟要掌握各类模式和算法都依赖很强的逻辑思维能力。然而在经历了一段职业生涯后,我发现程序员的“语文”能力也同样重要。《重构》一书中就提出:唯有优秀的程序员能够写出人类能理解的代码。软件的规模越来越大,一个系统通常需要几代程序员来开发维护。然而这些程序员们往往都素未谋面,只能“神交”于代码的字里行间。提到可读性,...原创 2019-08-29 11:48:21 · 995 阅读 · 0 评论 -
性能
做人不要斤斤计较,但写代码一定要斤斤计较!来看一个Linux-2.4内核中的例子,学习世界顶尖高手的做法。内核中经常要访问进程控制块(PCB),其在内核中定义为task_struct结构。为此在include\asm-i386\current.h中定义了一个宏current,提供指向当前进程的task_strcut结构的指针。static inline struct task_struct *...原创 2019-08-28 12:02:58 · 176 阅读 · 0 评论