c/c++ 感悟 2008-10-03 02:08
许久没有坐在电脑前写东西了.除了密密麻麻的英文小虫子,还是英文小虫子.今天不是解决bug,明天就是在创造bug,一句话不在bug中沉默就在bug中爆发.或许喜欢小宇宙爆发的样子吧,那样的感觉总是让人热血沸腾.所以大部分时间总是在爆发中度过.每一次键盘噼里啪啦的响,那预示这一个伟大的,头疼的bug诞生.
c/c++是我喜欢的语言,喜欢他原自我的启蒙老师,一个干瘦的老头.我的启蒙老师告诉我,学习c/c++你可以做你喜欢做的事情.我喜欢做的事情是什么?我的启蒙老师回答:你头顶的光环.我回宿舍拿镜子照了半天也没有找出我头顶上的光环,气馁万千,感觉老师是欺骗了我.后来我们的计算机中毒了,害的我所有的资料都被感染了,心疼万千.发誓,我一定写出更加厉害的病毒,让那些祸害我们菜鸟的人知道什么病毒,可是迄今还未写出一样拿的出手的病毒,到是参与了安全工具的研发.我现在明白了我头顶的上光环是什么,可是我很对不起我的启蒙老师,很对不起他对我的栽培,很对不起他对我的期望,我知道了用c/c++可以做自己喜欢的事情,可是我始终没有让头顶的光环放射出灼人的光.
学c/c++,最大忌讳就是眼高手低,只看不练.我发现身边好多的同事都是看了好基本优秀的书,可是怎么也没有看出有多大的进步.代码的健壮性依旧是差,可读性还是那么的不友好.书不在多,在于精,看是一方面,写又是另外一方面.大家喜欢上了看却为度少了练习.我面试过好多的同事,都是基本的问题,他们的回答都是摸棱两可,一看就知道,他们看的书肯定不少,他们把知识记混了,不清晰.如果在研发中有这样的情况那有多大的风险.例如:移动通信的后台都是c语言写的,他们的业务处理错综复杂,如果有这样一条语句
char* pt = new char[100]; 处理完业务后delete
pt;大家能看出来问题吗?看不出来是吧,告诉你如果业务处理超过百万条的数据,这个程序就崩溃掉了.因为他造成了内存泄露,内存泄露在了哪里?对就是这句
delete pt,正确写法应该是 delete
[]pt;所以稳固的基础,是研发的一个关键.你的知识丰富,只能说明的你的阅历丰富而已.其他的并不代表什么.
大意是大家都犯的错误,这个我不否认,我也犯过.但是我犯的错误和大家不一样,大家写程序无非是变量书写错误,或者忘记了加标点符号,但是我的不同.我的代码能造成堆溢出(非常的严重的错误),或者编译器直接崩溃掉,以上的种种都是大意造成的.是完全可以避免的.所以大家写程序时一定要仔细,认真,我们能自己发现的错误就不要让编译器帮我们找出来.我们感谢编译器.而不是让它来帮助我们纠正我们的错误,不要增加编译器的负担.我是最瞧不起那些,认为编译器很强大,它能帮我们做任何的事情的人.凡有这样想法的人,应该拉出去统统毙掉.
这样看来c/c++貌似很复杂,其实很简单.大家都说指针复杂,其实是一个误区.关键是心态问题.如果你学够扎实,这些问题都是可以避免的.大家或许问,什么最难?我告诉大家,搭建系统框架最难,搭建系统框架不仅仅是语言方面的问题了,它还设计到了性能,维护,拓展,效益等方方面面.我曾培训6个人的团对写一个安全工具.我搭建了一个软件框架.数据+业务+控制管理+页面,四个层次的软件结构.这样做的目的不仅做到高内聚低偶合,还符合构件编程的思想.可是大家实施起来确实困难万千.原因是框架结构他们始终不理解.我解释了数次,最终写了一个demo出来,他们才理解.这时不在是你知识丰富不丰富的问题了.而是一个你能否独揽这个体系大局的问题.后来又爆漏出,不懂windows
API这个问题来,哎.....总之很是乱.归根揭底.就是知识不稳固,态度不认真.
眼下又要带队去南京做手机通信去了,不知道这个队伍又会怎样呢.希望做好吧!
c/c++ 感悟 2008-10-03 02:08的更多相关文章
- Groovy轻松入门——通过与Java的比较,迅速掌握Groovy (更新于2008.10.18)
摘自: http://www.blogjava.net/BlueSUN/archive/2007/03/10/103014.html Groovy轻松入门--通过与Java的比较,迅速掌握Groovy ...
- phoenix连接hbase数据库,创建二级索引报错:Error: org.apache.phoenix.exception.PhoenixIOException: Failed after attempts=36, exceptions: Tue Mar 06 10:32:02 CST 2018, null, java.net.SocketTimeoutException: callTimeou
v\:* {behavior:url(#default#VML);} o\:* {behavior:url(#default#VML);} w\:* {behavior:url(#default#VM ...
- CISCO运维记录之4507设备升级IOS(Version 03.03.02.SG版本存在bug)
CISCO运维记录之3650堆叠设备升级IOS(Version 03.03.02.SG版本存在bug) 1. 问题详情 思科45系列交换机使用Catalyst 4500 L3 Switch Softw ...
- OpenWrt for vmware 从openwrt.org下载10.03.1 或是自己下载最新的源码进行编译生成x86 vmdk格式
1,直接从OpenWrt.org官网下载 http://downloads.openwrt.org/backfire/10.03.1/x86_generic/ 更新OpenWrt在线软件源 opkg ...
- datetime 2017-10-21 10:09:02.560 转年月日的时间类型
sql语句时间转年月日格式: 适用于多种时间格式 select REPLACE(STUFF(CONVERT(char(10), REPLACE(CONVERT(varchar(10),'2017-1 ...
- 本周ASP.NET英文技术文章推荐[02/03 - 02/16]:MVC、Visual Studio 2008、安全性、性能、LINQ to JavaScript、jQuery...
摘要 继续坚持,继续推荐.本期共有9篇文章: 最新的ASP.NET MVC框架开发计划 Visual Studio 2008 Web开发相关的Hotfix发布 ASP.NET安全性教程系列 ASP.N ...
- ROS连接ABB机械臂调试详细教程-ROS(indigo)和ABB RobotStudio 6.03.02-
在ROS industrial介绍中,给出了ROS和常用机械臂的连接方式.具体信息可以参考:http://wiki.ros.org/Industrial ROS连接ABB机械臂调试详细教程-ROS(i ...
- 2019.03.02 ZJOI2019模拟赛 解题报告
得分: \(10+0+40=50\)(\(T1\),\(T3\)只能写大暴力,\(T2\)压根不会) \(T1\):道路建造 应该是一道比较经典的容斥题,可惜比赛时没有看出来. 由于要求最后删一条边或 ...
- 2018.10.03 NOIP+ 模拟赛 解题报告
得分: \(30+5+0=35\)(考得真不咋滴) \(T1\):奥义商店(点此看题面) 以为很简单,对着这题想了一个多小时,最后果断打了个暴力交了... ... 看完题解发现其实也不是很难. 对于\ ...
随机推荐
- 转载 npm 安装vue出现的问题
npm 安装 vue或者express 出现 npm ERR! code UNABLE_TO_VERIFY_LEAF_SIGNATUREnpm ERR! errno UNABLE_TO_VERIF ...
- Asp.Net Core 中的“虚拟目录”
写在前面 现在部署Asp.Net Core应用已经不再限制于Windows的IIS上,更多的是Docker容器.各种反向代理来部署.也有少部分用IIS部署的,IIS部署确实是又快又简单,图形化操作三下 ...
- WARNING: 'aclocal-1.14' is missing on your system.问题解决记录
在编译LXC时,遇到一个问题,提示 'aclocal-1.14'缺失.如下:WARNING: 'aclocal-1.14' is missing on your system. You should ...
- 推荐一款技术人必备的接口测试神器:Apifox
1. 背景 作为互联网行业技术从业者,接口调试是必不可少的一项技能,通常我们都会选择使用 Postman 这类工具来进行接口调试,在接口调试方面 Postman 做的确实非常出色.当然除了Postma ...
- Django学习路17_聚合函数(Avg平均值,Count数量,Max最大,Min最小,Sum求和)基本使用
使用方法: 类名.objects.aggregate(聚合函数名('表的列名')) 聚合函数名: Avg 平均值 Count数量 Max 最大 Min 最小 Sum 求和 示例: Student.ob ...
- Series结构(常用)
1.创建 Series 对象 fandango = pd.read_csv("xxx.csv") series_rt = fandango["RottenTomatoes ...
- Numpy创建数组
# 导入numpy 并赋予别名 np import numpy as np # 创建数组的常用的几种方式(列表,元组,range,arange,linspace(创建的是等差数组),zeros(全为 ...
- Python time asctime()方法
描述 Python time asctime() 函数接受时间元组并返回一个可读的形式为"Tue Dec 11 18:07:14 2008"(2008年12月11日 周二18时07 ...
- luogu P5826 【模板】子序列自动机 主席树 vector 二分
LINK:子序列自动机 想了一些很有趣的做法. dp 容易看出 f[i][j]表示前i个数匹配了j个数的dp 不过复杂度很高. 贪心 容易想到匹配的时候每个数字尽量往前匹配 这样显然是最优的 复杂度Q ...
- mysql优化:explain 和 profile
此文转自:https://blog.csdn.net/hanjungua8144/article/details/84317829 一.SQL查询语句优化基本思路和原则 优化更需要优化的Query.定 ...