首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么建议你这样写注释

Doxygen就是开发中广发使用工具,如果你留意的话,很多源码包都是使用Doxygen来生成代码文档,如下图就是使用Doxygen为工程生成文档中一个文件展示 ? ? ?...而生成这样文档,注释就要按照Doxygen规则,注释就要按照类似如下格式来书写 ?...如果你记不住没关系,,可以多翻阅,这些规则都有例子,或者参阅一些源码包注释,如我们来看一些源码包中注释风格: 如lwip 协议栈源码包中就是按照doxygen来注释,只要运行相应文件就可以生成文档...可以看到注释风格就是Doxygen 要求。同样在其他一些常用源码包里,大部分都是使用了doxygen来生成相应文档。这样整个项目的结构和接口都会生成一个详细文档,可以支持不同格式。...大大方便了工作汇报,代码审阅评审,以及联合开发接口沟通。所以大大推荐采用Doxygen格式来写注释。尤其现在对中文支持也越来越好了。

63820

Next.js,到底为什么这样

但是为什么只提供访问 cookie 和 header API 呢?为什么不导出一个 request()方法,它返回一个 Request 对象或请求上下文?...等等,我们为什么不能使用 cookies()方法呢?...; }; 它暴露了 set()方法,但当你试图这样做时,会报错!为什么呢?想不出任何合理解释来证明这个限制是必要。SvelteKit 可以很好地实现这一功能。...为什么这样设计? 所有这些小问题积累起来,作为一个库作者,支持 Next.js 很困难,有时候几乎是不可能。...不是指望他们立刻做出改变,但是一些确认还是很好理解开源项目不该有太高期望。自己也是一个库作者。但是来吧。这是一个由大公司支持大型框架。有一些期望真的很过分吗? 认为其根本原因有两点。

36420
您找到你想要的搜索结果了吗?
是的
没有找到

写出这样干净代码,老板直夸

有意义命名 见名知意 命名要名副其实,虽然起个好名字要花时间,但省下来时间比花掉时间多。 变量、函数或类名称需要表达出:它为什么会存在,它做什么事,应该怎么用。...认为这样命名比较合适: listByEntity(),这样命名很快就能知道:1.这个方法是返回list;2.这个方法是一个条件查询;3.入参是一个实体。 别害怕长名称。...最后,遵循本章列出规则,组装好这些函数并不从一开始就按照规则写函数。想没人做得到 ❞ 就像写作文一样,好代码也不是一次性写出来,需要反复琢磨。...注释存在时间越久,就离其所描述代码越远,理解起来就很容易错误。原因很简单。程序员不能坚持维护注释。 要知道注释也不能美化糟糕代码,所以花点时间好好重构下代码吧。...「PRNG(伪随机数):」伪随机数, 计算机不能生成真正随机数,而是通用一定方法来模拟随机数。伪随机数有一部分遵守一定规律,另一部分不遵守任何规律。

35810

就是这样学 Python

之前,经常被问到这样问题: 看书很枯燥,应该怎么学习 Python? 是小白,适不适合学习 Python? 有没有书籍或者学习资源推荐?...都简洁回答:像玩游戏一样学习,你要从中获得成就感;如果你能学会玩游戏,就能学会 Python。...当初做运维,为了监控作业报错,就想着如何将报错日志发送邮箱,就搜了下,结果找到了 Python 发送邮件 demo,将其改成通用函数,用在了运维监控上,几行代码就搞定了,觉得 Python 很有趣...因为接触了 Django,就学习了如何开发一个网站,想着如何自己弄一个 Web,来提升上线效率,有了这个目标,就学习了 Python Web 技术栈,了解到最流行做法是前后端分离,于是就学习了...这样,你就会变得越来越好。

39620

这样高可用,不要!

背景 据他说,他们应用,级别比电信应用还要高(牛皮一定要吹),所以消息系统要求一条消息都不能丢。他做到了,但是服务不能用了。 这个Case有何而来呢?...思考 高可用是个伪命题,虽然有CAP等耳熟能详理论支持,还是有很多人陷入了这个误区,包括技术决策人。架构作为全局把控人,能出现这样错误,纯属低级。下面,是自己对高可用一点思考。...比如,生产端异常关闭,缓冲区处理,低吞吐环境下消息过盛处理;消费端消息积压, 以及死信处理。...数据不能丢,还能找回来 分布式系统谈最多就是最终一致性,但鲜有人知,最终一致性包括人工环节,甚至客服介入。一般,产生异常数据概率还是比较小,人工可以处理过来。...分布式系统是个复杂整体,不要以偏概全,搞定了某个组件并不等于搞定真个系统。领导会认为这样,你不能

35920

为什么在容器中不能 kill 1 号进程?

而容器中也是由init进程直接或间接创建了Namespace中其他进程。 linux信号 而为什么不能在容器中kill 1号进程呢?进程在收到信号后,就会去做相应处理。...在没有别的参数时这个信号类型默认为SIGTERM,是可以被捕获 SIGKILL(9) Linux 里两个特权信号之一,不能被忽略也不能被捕获。进程一旦收到 SIGKILL就要退出。...运行命令 kill -9 1 里参数“-9”,就是指发送编号为 9 这个 SIGKILL 信号给 1 号进程。 为什么在容器中不能kill 1号进程? 对于不同程序,结果是不同。...如果信号被忽略了,那么 init 进程就不能收到指令了。 想要知道 init 进程为什么收到或者收不到信号,就要去看 sig_task_ignored()实现。...0000000000004000 [root@043f4f717cb5 /]# kill 1 # docker ps CONTAINER ID IMAGE COMMAND CREATED 重点总结 “为什么在容器中不能

10710

这样爬虫架构,如履薄冰

同样,Scrapy也提供了这样功能配置。 所以说,Scrapy是一个爬虫框架,requests是一个爬虫模块,这就是两者区别的根本所在。下面是Scrapy架构图。...那么,如果程序中途停止了,这个内存中集合也将不复存在,再次启动程序,将无法判断哪些是已经爬取过。 那么就用数据库,将已经爬取过url插入到数据库中,这样就算重启程序,爬取过url也不会丢失了。...选择重新启动程序,那么你说怎么样才能直接从第999个开始爬取呢? 这里先讲讲第一个爬虫:爬取10+个地市poi信息。...换种思路,将爬取url放到表中,重启程序开始爬取url时候,先去判断url是否存在于数据表中,如果存在就不进行爬取,这样也能实现断点续爬。也是沿用了原始url去重思路。...所以,如果说关于上述问题,Scrapy都提供了现成解决方案(开箱即用插件),那么你会心动吗? 插件介绍就不多说了,在Scrapy爬虫文章里都有,如果有兴趣可以自行学习。

11510

这样挑战不用 for 循环

学Python最简单方法是什么?推荐阅读:Python开发工程师成长魔法 为什么要挑战自己在代码里不写for loop?因为这样可以迫使你去使用比较高级、地道语法或库。...同样也要你找到一种场景——除了用for循环以外,用其他方法写都太难。请分享你发现,非常想听到这些 距离我开始探索超棒Python语言特性已经有一段时间了。...一开始,这只是给自己一个挑战,练习使用更多语言特性来替代从其他编程语言那里所学到。但是事情渐渐变得更有趣了!...为了改进,建议你这样做: def process_item(item): # setups # condition # processing # calculation return result...结论 大多数情况下是不需要写for循环。 应该避免使用for循环,这样会使得代码有更好阅读性。

78380

这样写文字轮播

连续加班加点大半个月,做活动项目终于算是告一段落了,而今天也将是考验其真正价值时候,现在将这次开发中遇到问题做一下总结。...2项目背景 这次项目主要是做一次全国酒店人气排名营销活动,主要是基于在微信中传播。 预计访问量达到亿级,并发做到2000+/s,且有不少容错预案,这次主要负责前端首页方面的展示效果。...功能点: 文字无缝轮播(不要在意为什么在移动端还会有这样需求) 3如何实现 我们可以下面三种方法来进行实现: 1 marquee 当一说到文字无缝滚动时,大家最先想到是marquee。...最后是js: 这里还是写jquery,相信大家都能看懂,就是让滚动元素宽度等于他内部元素总宽度减去第一个(或者最后一个)元素宽度,这样能保证无缝效果。...最后要说明为什么要用js动态添加css3类名实现滚动效果,一开始时候也是想直接将css3滚动特效写在滚动元素上,但是在iPhone上发现首次加载当前页面的时候他不会自动滚动。

1.7K20

领导看了关闭超时订单,让出门左转!

哈喽大家好,是阿Q! 前几天领导突然宣布几年前停用电商项目又重新启动了,带着复杂心情仔细赏阅“儿时”代码,心中酸楚只有自己能够体会。...让最深恶痛觉就是里边竟然用定时任务实现了“关闭超时订单”功能,现在想来,哭笑不得。我们先分析一波为什么大家都在抵制用定时任务来实现该功能。...定时任务 关闭超时订单是在创建订单之后一段时间内未完成支付而关闭订单操作,该功能一般要求每笔订单超时时间是一致。...,后边消息不能顺利出队,造成后边消息阻塞了,未能达到精准延时。...接收到消息是:延迟消息睡10秒 这样我们问题就顺利解决了。

65020

这样入门“机器学习”

为什么学AI 随着近几年计算机领域不断发展,云服务与并行计算促进了计算力提升,互联网发展提供了海量数据,这些方向发展都促进了人工智能发展,也促进了AI领域机器学习发展。...看一遍,如果80%甚至更多都和自己认知相同,那么这个人多半你就是认同,大概率买她课不会让你失望,李烨老师给我感觉就是这样。 以上只是真实感受,不多说了,要不然有打广告嫌疑。...自己本人是,基本上所有的公开课app都装了(买了几千块手机,不能白买)。 机器学习 首先推荐:吴恩达老师在Cousera上“机器学习公开课”。 ?...小吐槽:大学教育时,很多算法,模型,都没有学习英文表达方式以及认真梳理,造成别人说一些专业英文术语时候,自己不能理解。 其实是自己没意识到要进行知识梳理。...,写非常浅显易懂,适合这样菜鸟。

1.7K51

为什么要创建一个不能被实例化

摄影:产品经理 感谢小何上等牛肉 当我们创建一个Python 类并初始化时,一般代码这样写: class People: def __init__(self, name): self.name...但如果有一天,你发现写了这样一个类: class People: def say(self): print(f'叫做:{self.name}') def __new...__(self): raise Exception('不能实例化这个类') kingname = People() kingname.say() 一旦初始化就会报错,如下图所示:...一个不能被初始化类,有什么用? 这就要引入我们今天讨论一种设计模式——混入(Mixins)。 Python 由于多继承原因,可能会出现钻石继承[1]又叫菱形继承。...显然,这样写会报错,因为两个类实例是不能比较大小: 但在现实生活中,当我们说 某人比另一个人大时,实际上是指某人年龄比另一人年龄大。

3.4K10

更喜欢这样工程师

公司是否提供管理岗位晋升之道,是否提供主管以上岗位?你是否拥有良好晋升机会?对于经理以外的人,你决策过程是否不太透明?不要固执己见,多征求他人看法。 如果是这样,也许他们不相信你。...但工程师影响力是什么样子,他们能力如何体现? 将避免讨论性别、种族和阶级相关问题,我们只是承认,某些掌握权力的人要比其他人更难。 创造力量 实干是工程师杀手锏。...这种角色通常是那些工作时间最长或者最早构建系统工程师来承担。如果你对自己历史和背景感到乐观和愉快,这将是一项巨大财富。(实际上,人们往往高估这个人不可或缺性。请不要形成这样风气。)...所谓“软实力”是唯一可持续权力形式,比如影响力和鼓舞力,这就是为什么优秀管理者可以自由地使用软实力,并且非常不情愿地使用硬实力。如果你领导滥用权威,那将非常糟糕。...很多人可能应该这样做。 当技术和管理优先事项发生冲突时,谁应当胜出?理想情况下,你应当和业务人员一起努力寻找最佳解决方案。

35310

这样开始写Python爬虫

2.开始直接上手 转机出现在看过一篇爬虫技术文章后,清晰思路和通俗易懂语言让觉得,这才是想学爬虫。于是决定先配一个环境,试试看爬虫到底是怎么玩。...用 urllib 下载和解析页面的固定句式 当然 BeautifulSoup 中基本方法是不能忽略,但也无非是find、get_text()之类,信息量很小。...就这样,通过别人思路和自己查找美丽汤用法,完成了豆瓣电影基本信息爬取。 用 BeautifulSoup 爬取豆瓣电影详情 3. 爬虫渐入佳境 有了一些套路和形式,就会有目标,可以接着往下学了。...再回去补充 Python 基础知识,就很有针对性,而且能马上能用于解决问题,也就理解得更深刻。这样直到把豆瓣TOP250图书和电影爬下来,基本算是了解了一个爬虫基本过程了。...当然 Scrapy 本身 selector 、中间件、spider 等会比较难理解,还是建议结合具体例子,参考别人代码,去理解其中实现过程,这样能够更好地理解。

2.4K01

协程是不是这样

最早知道概念是进程 , 每个进程里面的执行单元是线程 , 一个进程肯定有一个主线程 , 也可以开出一些子线程 ,这俩都是操作系统控制 协程是啥概念?...现在又在线程里面增加了个协程单元 , 这个是各程序自己去实现概念 , 是比线程更小一个单元 在一个线程里面如果开启了一个协程 , 这个主线程就会被阻塞到协程里面去 , 协程执行完 , 再回到主线程...这个好]和线程阻塞还不一样 ,线程是被操作系统内核所阻塞,而协程是被程序控制阻塞 ,没有进入到操作系统内核里 , 这样耗费资源就少....多进程和多线程切换 , 都是需要操作系统来处理 , 如果换成多协程切换 , 就可以只需要我们程序自己来处理就行了 , 耗费资源也少....那么对于很多语言例如PHP有协程概念 , 应该是单协程 , 并没有增加多协程并发调度切换 ?

80810

为什么要为开源社区做贡献|你也应该这样

从一个男孩家转移到另一个男孩家,几乎无法控制自己生活。但我很坚强,也很聪明,在很小时候就获得了自由,这让在十几岁时候就开始按照自己想要方式生活。...不明白他意思。 他为什么要叫它什么呢?然后他解释说,这是他自己用BASIC语言写大脑爆炸。喜欢电脑游戏,但我不知道人们可以自己开发游戏。...认为在那里时间是天堂和地狱之年。主要是因为参与项目。 刚刚结婚,被分配到一个项目,可以最好地描述为有一个兄弟会氛围。很好玩,但不适合家庭生活。然后转到另一个项目,叫做梵蒂冈内部。...技能非常抢手,为一系列知名机构工作,包括一家保险公司、几家银行和国防部。喜欢软件工程师工作,但我劳动成果是公司不像我朋友父亲那样,把置于他庇护之下。...不高兴,但与此同时,岳父一直告诉,如果百分之百地喜欢工作,就会付钱在那里工作。他告诉,除了经济上回报,工作不需要提供任何东西,经历也证实了他观点。

71120

重构业务系统,这样

重构原因有很多,可能是伴随着业务发展与升级,系统无法快速支持需求迭代,这时就有了重构念头,一般情况下不建议对老系统进行重构,毕竟重构是有代价。...最近参与了一个重构项目,接下来给大家分享下,在重构业务系统过程中经验总结。 1....了解系统 接到重构任务后,不要立刻动手执行重构,而是对当前业务流程和架构状态有个清晰了解,如果开发过当前系统同事还在公司,一定要拉着同事好好讨论。 我们要知道系统一定是给人用,是给哪些人用?...业务流程图 通过了解系统之后,清楚业务核心流程,这时要按照理解绘制 业务核心流程图,这里面涉及到与各系统交互,需要考虑跨系统之间交互可否使用异步完成,尽量减少循环调用情况,同时还要确定出当前系统边界...非技术问题 舒缓团队压力,给予团队更多鼓励,定期向团队同步状态,得到大家理解和支持,还有一些无法把控各系统间交互沟通,我们要做到与各对接方坦诚沟通。 7.

1.1K10

状元访谈丨这样备考

01 目前从事工作 从大学毕业至今,已工作12年多。...第三,要学会看结果(模型评估结果),语言已经提供了非常简便地计算各类统计指标的代码,但要看得懂结果,需要扎实数理统计基础,需要适当了解算法推理过程,并不是一味地套用,这样才能帮助大家选择最合适模型得出最佳结果...在报考课程或者考试之前建议要确定好自己职业方向,如果没有明确方向,至少确定自己对此事感兴趣这样,后期学习过程和考试过程会相对轻松和愉快。 2....想通过考试来更有效督促自己努力,有计划,有评价标准好好学习。 03 如何高效地备考 觉得在学习过程中,最重要也是一直支撑走下去原因有三个: 1....现在是互联网时代,有效信息交流会省去很多时间也会让自己更快成长。 04 今后发展规划 因为大学专业是金融,希望自己能够把金融学和数据分析更好结合。

35630
领券