首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

把三千代码重构成15代码谈起

把三千代码重构为15 那年我刚毕业,进了现在这个公司。公司是搞数据中心环境监控的,里面充斥着嵌入式、精密空调、总线、RFID的概念,我一个都不懂。...唯一让我担忧的是,我进公司的时候,帮忙整理公司申请软件著作权都是需要代码量的,根据代码多少来评估软件的大小,万一老板知道了我非但没有帮公司增加代码量,还减少了,会不会立即把我开掉?...我相信,08年开始的码农们,看到这种类似的代码绝对不比我少。那么,我想告诉你们的是什么呢?...我的前辈应该是c++程序员转过来的,习惯了各种功能自己实现一遍,但是他忽略了C#的很多东西。我们不去评判这段代码的优劣,而实际上他在很长一段时间都运行得很好。...因为原理上来说,Timer类无论你声明了多少个,其实就只有一个线程在执行。

47820

Linux 删除文本中的重复

在进行文本处理的时候,我们经常遇到要删除重复的情况。那怎么解决呢? 下面就是三种常见方法? 第一,用sort+uniq,注意,单纯uniq是不行的。...shell> sort -k2n file | uniq 这里我做了个简单的测试,当file中的重复不再一起的时候,uniq将服务删除所有的重复。...经过排序后,所有相同的行都在相邻,因此unqi可以正常删除重复。 第二,用sort+awk命令,注意,单纯awk同样不行,原因同上。...P; D' 最后附一个必须先用sort排序的文本的例子,当然,这个需要用sort排序的原因是很简单,就是后面算法设计的时候的“局部性”,相同的可能分散出现在不同的区域,一旦有新的相同行出现,那么前面的已经出现的记录就被覆盖了...参考推荐: 删除文本中的重复(sort+uniq/awk/sed)

8.4K20

3000缩减到1000,用django类代替视图函数

基金净值展示, 分红信息, 公告文件下载等功能, 后端提供的接口依然靠zh-cn, zh-hk, en来区分三个语言版本, 这时, 后端渲染的逻辑, 重复度特别高, 视图函数单个文件的代码量一度达到3000(...由于时间紧, 需求变化频繁, 也没时间重构项目, 复制,粘贴到怀疑人生, 3.0版本是含着泪做完的...) ---- 项目完成后, 我迫不及待的进行了项目优化 用类代替视图,3000缩减到1000... 用类取代视图函数的逻辑非常简单, 两步就能搞定 第一步: 改写路由映射, 通过路由, 把 语言参数传进去 原urls: from django.conf.urls import url from ....现1000) ?...小结: 开发经验这种东西, 踩的坑多了, 自然就有了 如果有人告诉你, django要用类来减少视图函数的重复书写, 你可能会不以为然, 但亲身经历将3000重复代码简化到1000不到的时候, 你自然也就接受了

64020

Linux | windows来到Linux,目录操作

请后台联系授权 - 正式开始 - ▼ -01- 打开终端 | ctrl+alt+t 推荐新手使用Ubuntu16.04 LTS的桌面版,在桌面版提供了桌面系统,虽然论速度和便利性与windows平台想去甚远,但是学习的角度讲...如果你不喜欢Linux提供的桌面环境,可以使用ctrl+alt+F1~F6(F1~F6可以在6个tty之间转换。)转换到CLI下,可以使用clrl+alt+F7回到当前的桌面环境。...-03- cd | 目录操作 首先你应该了解一下Linux下的目录结构,详情可以参考本人另一篇文章 《聊聊Linux工作环境》。 cd命令就是一个切换当前目录的命令。...绝对路径:根目录开始检索,如:/home/lizechen 相对路径:以当前目录为参照来检索。 这里介绍两个符号“.”代表当前目录, “..”代表上一层目录。“~”代表家目录,“/”代表根目录。...这里需要解释一下,因为cd是和shell绑在一起的,属于shell的功能,虽然是一个linux命令,但是并没有对应的用户手册,却可以通过help来获得想要的帮助。

3.8K30

Linux入门到精通(九)——Linux编程

移动多行: :n1,n2 m k # n1到n2的文本移动到k处,其中m是移动命令 搜索和替换: /string:向前搜索指定字符串。 搜索时忽略大小写:set ic ?...5.1 安装(c语言中文网) ​ 由于 Linux 操作系统的自由、开源,在其基础上衍生出了很多不同的 Linux 操作系统,如 CentOS、Ubuntu、Debian 等。...然后通常使用gcc的-static 选项该PIC 目标文件生成动态库文件默认情况下库文件的存放位置:/usr/lib或/lib。...对于不同版本的gcc来讲,n的取值范围及其对应的优化效果可能并不完全相同,比较典型的范围是0变化到2或3。 通常情况下,数字越大,会起到更好的优化效果,但整个编译链接的过程会变慢。...Delete n:去除第n号断点 Disable n:暂停使用第n号断点 Enable n:启动第n号断点 Break :后向前清除断点 print 变量名:显示变量的值 file 文件名:如果直接执行

2K30

Linux程序到进程

我们已经Linux进程基础中了解了进程。现在我们看一下程序到进程的漫漫征程。 一段程序 下面是一个简单的C程序,假设该程序已经编译好,生成可执行文件vamei.exe。...进程附加信息 除了上面的信息之外,每个进程还要包括一些进程附加信息,包括PID,PPID,PGID(参考Linux进程基础以及Linux进程关系)等,用来说明进程的身份、进程关系以及其它统计信息。...每个进程的附加信息中有位置专门用于保存接收到的信号(正如我们在Linux信号基础中所说的“信箱”)。...fork & exec 现在,我们可以更加深入地了解fork和exec(参考Linux进程基础)的机制了。...具体机制请参看Linux内核相关书籍) 这一篇写了整合了许多东西,所以有些长。

1.5K90

Linux系统安装开始

已经很久很久没来得及写博客了,想想之前自己开始安装使用Linux系统的尝试,好像很简单!...下面开始Linux系统的安装:这里推荐U盘安装   首先你必须下载一个U盘ISO镜像写入工具,本人使用USBWrite,下载地址:https://sourceforge.net/projects/usbwriter...第四步重启电脑,进入Bios设置U盘启动,然后保存确定退出,系统开始进入Linux安装界面,选择操作的语言,所属时区等,设置管理员账号密码,如果电脑已经安装Windon系统,这时会有提示是否需要安装双系统还是完全格式化硬盘...,只安装Linux....然后就是分区,请记住:Linux中一切皆文件。   安装Ubuntu成功最后界面: ?   后续持续更新更多内容,不在创业公司,压力远远没有那么大了,也有时间做些自己的事情了。

1.4K70
领券