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

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

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

    49820

    Linux 删除文本中的重复

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

    8.6K20

    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不到的时候, 你自然也就接受了

    66720

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

    1.5K90

    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

    使用一Python代码图像读取文本

    如果你还没有安装它,那么它将只是终端中的一: pip install opencv-python 差不多就是这样。在此之前,一切都很简单,但这种情况即将改变。...根据我自己的经验,该库应该能够任何图像中读取文本,但前提是该字体不会使你连连看都看不懂。 如果无法你的图像中读取文字,花更多的时间使用OpenCV,应用各种过滤器使文本高亮。...如果你使用的是Linux,则全部归结为几个sudo-apt get命令: sudo apt-get update sudo apt-get install tesseract-ocr sudo apt-get...在Linux机器上,我不需要这样做,但在Windows上是必需的。默认情况下,它安装Program Files。 如果你做的一切正确,执行这些代码应该不会产生任何错误: ?...在你离开之前 对计算机来说,图像中读取文本是一项相当困难的任务。想想看,电脑不知道字母是什么,它只对数字有效。

    1.6K20

    InnoDB(4)溢出--mysql入门到精通(九)

    上篇文章说了compact格式中真实数据存储,真实数据innoDB会默认添加transaction_id事务id,roll_pointer回滚指针,其中row_id不是必须的,当用户设置了primery...InnoDB(3)记录真实数据--mysql入门到精通(八) 溢出数据 Varchar(M)类型最多存储多大?...You have to change some columns to TEXT or BLOBs 很明显报错了,错误可以看到,我们创建的字段过长,系统让我们改成text或者blob类型,因为这个65535...max_size_ascii1 (c1) values (repeat('a',65532)); Query OK, 1 row affected (0.01 sec) 在compact和redundant格式中...Dynamic和Compressed格式 Mysql版本5.7后默认用的是dynamic格式,他们和compact格式基本一致,唯一有点不同的就是行数据溢出的存储方式,他们在真实数据列表不会存储真实数据

    57130
    领券