首页 文章 精选 留言 我的

精选列表

搜索[个人知识库],共10000篇文章
优秀的个人博客,低调大师

程序员如何提升个人技术影响力

都说程序员的成长是码出来的,此话不假。但如果既会写代码,还会写文章,还能讲PPT,那你离影响力还会远吗? 本文是针对每一个技术同学都适用。我将从行业技术大会主编的角色告诉你,如何打造自己的技术影响力,有哪些通用的手段,我自己又该如何做个性化叠加;我是技术小白,或者我有一定技术基础,我又该怎么打造自己的影响力? 一、为什么要分享这个话题? 最近和一些技术同学聊天中,经常会听到,谁谁谁在xx大会发表演讲了,好厉害,简直是行业天花板。但是我想说的,这些厉害的人,也是自己一步一步积累起自己的影响力的。假以时日,你也可以的。 刚毕业的时候,大家可能会卷学历;但工作一段时间之后,大家就从卷学历到卷公司、职级,后来,大家开始卷影响力了。比如,xxx在行业大会发表演讲、论文,甚至是专利。 那作为得物技术运营,以及行业开发者大会的前主编,我想说,不积跬步,无以至千里。那我们的跬步是什么呢? 二、为什么要打造技术影响力? 在输出这个话题之前,肯定有同学想问,为什么要打造自己的技术影响力,有什么用?或许,往近一点说,升职加薪,往远一点说,自己创业,能被投资人发现?创业卖课?能增加副业收入?再远一点,给社会做贡献,推动中国技术行业创新发展。 如果,你对提升技术力这件事情感兴趣,可以接着往下看。 三、怎么提升技术影响力? 作为技术同学也有很多段位,可以先看看自己在什么阶段,因为每个阶段的重点肯定是不一样的。各个阶段重点以及需要关注的事情可以参考下面的表格;先判断自己处于什么样的阶段,然后对应的重点输出即可。 以下表格以本科为例: 接下来这部分,将重点描述每部分对应做的事情,以及简化的步骤。 输入-多学习自己对应领域的知识 可以是看书、听演讲、网上找系列课、参与项目实操,重点在于自己的思考和输出学习笔记。 有两个比较靠谱的建议是: 阅读源码,自己模拟去写 写代码的时候需要清楚自己的业务,以及背后的逻辑是什么,为什么要写这个代码,我思考和考量的东西是什么? 毕玄说过:「写一段代码可run不难,但写一段无论如何都可以稳定run的代码却非常难。」 对于程序员来讲,你要清楚你所在的位置为业务做的是什么,多了解业务运行的逻辑,再写代码的时候才会有更多的思考。 Tips:输入是一个长期过程,虽然后面的阶段没有提输入,但是所有的输出都是建立在输入足够充分的情况下,活到老学到老,终身学习。 输出-Github项目贡献 这里你可以去关注你感兴趣的项目、或者是发展潜力比较好的项目,长期贡献自己的代码。主要重点就是长期,可以算是工作之外的练习、学习。 某博主近一年的输出 技术文章 技术文章对于很多技术同学,真的是又爱又恨。其中最能引起共鸣的,应该是最讨厌别人不写开发文档和注释,还有最讨厌自己要写开发文档和注释。但是,写作这个话题,职场人写文章就是绕不开的,周报、晋升、答辩、各种汇报PPT,或者各种需求文档,总得写。 怎么写呢?打一个比方,我要做一道菜「辣椒炒肉」,我得准备主食材、辅料、调料、炊具吧。同样,我要写一篇文章,我得有想法,我想写一篇什么样的文章,我是做什么用,自己记录还是项目复盘、经验总结、还是给别的同学看? 有了初步想法,比如我想写一篇「业务架构」相关的文章。我可以在网上,比如InfoQ、CSDN、Google等,查一下,其他公司对于自己的业务架构是怎么做的,做到心中有数。 然后开始整理自己的东西,我建议至少要明确三个点:受众、标题、内容大纲。 例子: 补充: 万能主线逻辑:背景、现状、问题、解决思路、收益、价值 背景:针对受众 ,讲一讲为什么要梳理这个话题,有什么价值和意义 现状:现在行业现状、得物现状是什么样的,处于什么阶段 问题:可以理解为本文的观点或者论点,有什么问题 解决思路:针对问题——提出方案——结合实践——方案升级——有可以复用的方法论更好 收益/价值:升华主题 文章不可或缺的部分: 1.一条清晰的逻辑主线:是什么——为什么——怎么做——收益 2.一个亮眼的标题(一句话概括正文,并吸引读者兴趣) 3.整体文章通畅,避免下错别字(需要检查逻辑、错别字、观点等) 4.不要忽略总结 演讲 演讲有好几个阶段,最开始的自言自语,锻炼自己的表达能力,然后是团队内小范围的分享,再是大规模一点的分享,再是外出行业演讲。 演讲这部分的话,需要关注:重中之重就是内容、然后是表达。 内容的话,可以是基于你长时间的内容输出、技术文章、也可以来源于你的项目实践、复盘、总结。有观点、有例子、有故事,能表达才是一个好的case。 怎么输出内容可以参考前面写文章部分,有好的内容,才能内容修饰(PPT美化),除非你是演讲老手,不然你就老老实实准备逐字稿。 怎么上行业大会去演讲? 怎么讲?演讲技巧? 两个部分,一是写逐字稿,二是刻意练习。 演讲刻意练习: 把自己想象成导游,介绍某个景点,这个景点有什么故事、哪里好玩、有什么亮点、有什么好吃的。或者是把自己想象成老师,演讲之前要先备课。 对内容足够熟悉,时刻管理听众注意力,吸引听众跟你走(想象你在看电影,你会不自觉带入主人翁视角,同样的道理)。 内容循序渐进,有爆点/笑点最好。 演讲时,可以稍微整理自己的形象,比如干净整洁。 演讲的状态:身体放松,肩膀下沉,手臂打开,参考乔布斯演讲(或者Ted演讲)。 正常小范围的身体语言,如移动、挥手等。 出书 出书非常重要的一点,就是要有内容,有内容!你可以先做技术内容的产出,当内容积累到一定量的时候,从量变到质变,感觉有质变的时候,可以去出版试试呀。 可以简单了解下「出版流程」是什么样的?再看看自己怎么出版。 一本书出版的流程,包括投稿(选题策划)、选题申报、审校、申请书号、设计排版和印刷出版,作者可以不知道具体如何完成,但知道每一步是需要什么,做的是什么,才有利于完成出书。 第一步(作者):作者编写好完整的书稿,并确定出书的具体需求。 书稿是可以找出版社合作,想要出书,前提就是自己有大量的内容积累和连续内容的产出。也是出版的必须具备的前提条件。不同的作者有着不同的出书需求,比如评职称什么的,所以要想清楚自己为什么想要出版,梳理自己的出版需求即可。 第二步(出版社):评估出书的市场价值,确定出书的方式。 出版社评估出书的主要标准一般是:社会(文化)价值 + 经济效益。当两者有冲突的时候,会优先社会价值。 第三步(作者):确定合作的出版社,并向其投稿。 投稿,投稿是出书的前提,你要出书的话,你就要把你的稿件投到对应的出版社。出版社负责出书的主要核心部分,他们的盈利模式,一般主要是赚出书的钱(或者广告费),这个就比较考验编辑和出版社的眼光了,他们会综合考虑社会价值和经济价值,然后决定是否录用你的稿子,对于你的稿子,他们可以选择录用、不用(退回)、或者是退回修改再看改稿情况决定。你还可以选择自费出书,虽然是自费,出版社也会综合考虑社会价值,没问题的话就可以接受你的稿件。 第四步(出版社):选题申报 第五步(出版社):三审三校 第六步(出版社):申请书号 第七步(出版社):设计排版 第八步(出版社):印刷出版 总结下整个流程: 作者角度:确定需求——梳理好内容——寻找出版社——和出版社签订合同——出书 编辑角度(出版社角度):资料收集——选题策划——寻找作者——选题申报——选题集体论证——编辑校对(三审三校一读)——申请书号——出版合同——设计排版——印刷——公开发行——书本备案——后期调研等。 你的角度就是作者角度,还有一个思路,找周围出过书的朋友引荐编辑,投稿试试。 四、总结 以上就是就是程序员一些通用的影响力积累的建议,包括如何输入,重点需要关注什么,如何输出,输出的路径又是什么。其核心逻辑还是,厚积薄发。加油,少年!你是最棒的。 *文/yelan 本文属得物技术原创,更多精彩文章请看:得物技术官网 未经得物技术许可严禁转载,否则依法追究法律责任!

优秀的个人博客,低调大师

现代化个人博客系统 ModStartBlog v5.7.0

系统介绍 ModStart 是一个基于 Laravel 模块化极速开发框架。模块市场拥有丰富的功能应用,支持后台一键快速安装,让开发者能快的实现业务功能开发。 系统完全开源,基于 Apache 2.0 开源协议。 功能特性 丰富的模块市场,后台一键快速安装 会员模块通用且完整,支持完整的 API 调用 大文件分片上传,进度条显示,已上传文件管理 强大的模块扩展功能,所有模块可以无缝集成,支持在线安装、卸载模块 完善的开发助手,实现模块、主题的的一键创建 完善的后台权限管理,支持基于 RBAC 的权限管理系统 后台管理支持使用手机、平板、PC,无论何时何地都可方便管理 第三方登录(QQ、微信、微博、支付宝、微信小程序) 第三方支付支持(微信、支付宝、支付宝当面付、微信扫码、微信小程序) 第三方云存储支持,支持云储存分片上传(阿里云、百度云、华为云、腾讯云、FTP、七牛云、UCloud、又拍云) 第三方短信支持(阿里云、腾讯云、华为云、百度云、253 云通讯、聚合、七牛云、融云、赛邮、UCloud、云片、网易云) V5.7.0 亮点介绍 新增加白色主题,可在模块市场自行安装。 V5.7.0 版本更新 2022 年 09 月 07 日 ModStartBlog 发布 v5.7.0 版本,增加了以下 7 个特性: [新功能] 增加 Button 组件,支持表单快捷提交 [新功能] 富文本组件新增 htmlFilter 属性,定制配置过滤 [新功能] 富文本过滤图片新增 data-formula-image 属性 [新功能] 博客列表页面图片响应式大小优化 [新功能] 纯白的简约博客主题已支持 [系统优化] Cookie 中 SameSite 默认调整为 Lax [系统优化] 配置函数根据默认值类型自动推断 模块市场一键安装 系统内置模块市场,有行业应用、插件、云存储、云短信等功能模块,后台支持一键安装、启用、禁用、卸载,可快速搭建属于自己的系统应用。 系统演示与文档 码云仓库:https://gitee.com/modstart/ModStartBlog Github 仓库:https://github.com/modstart/ModStartBlog 系统演示:https://blog.demo.tecmz.com/ 下载试用:https://modstart.com/download 开发者文档:https://modstart.com/doc 模块市场:https://modstart.com/store

优秀的个人博客,低调大师

配置MongoDB(个人公司公共模块,备忘一下)

引入jar包 <dependency> <groupId>com.ehaier.shoppingmall</groupId> <artifactId>shoppingmall-core</artifactId> <version>3.0.10</version> </dependency> <dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-mongodb</artifactId> <version>2.1.5.RELEASE</version> </dependency> <dependency> <groupId>org.apache.xmlrpc</groupId> <artifactId>xmlrpc-client</artifactId> <version>3.1.3</version> </dependency> 配置yml mongo: replica-set: 10.1.132.28:27017 prop: python: addr: http://10.1.132.22:30001/RPC2 image: source: domain: img.rrscdn.dev/ service.xml引入 <import resource="classpath:mongo-config.xml"></import>

优秀的个人博客,低调大师

Java个人技术知识点总结(优化篇)

代码优化 代码结构层次的优化(目的:更加方便代码的维护--可维护性,可读性) 1.代码注释(代码规范) 2.工具类的封装(方便代码的维护,使代码结构更加清晰不臃肿,保证团队里代码质量一致性) 3.公共部分的提取 代码性能的优化(目的:使程序的性能最优化) 1.使用一些性能比较高的类(bufferInputStream) 2.缓冲区块的大小(4k或者8k) 3.公共部分的提取 4.通常要用stringbuffer替代string加号拼接 业务优化 我们做项目的时候业务优化这方面最主要是从用户体验度角度进行考虑,减少用户操作的步骤提高工作效率,通常有以下几种: 1.可以通过tabindex属性来改变tab键盘的操作顺序 2.可以通过回车键来进行搜索或者提交操作 3.对于单选按钮和复选按钮可以通过操作后面的文本来选择前面的单选按钮以及复选按钮 4.添加的信息要按照id倒序进行排列 5.进行搜索操作时加入js loading操作(不仅告诉用户所进行的请求正在被处理,而且防止用户多次点击提交操作) 6.当进行删除操作的时候要弹出提示框,警告用户要进行删除操作,是否确认。 7.根据returnURL在用户登录成功后直接跳到想要访问的资源。 8.进行删除操作时通过confirm提示用户是否确认删除操作,操作完后提示操作是否成功。 9.减少用户操作的步骤 10.使用autocomplete插件快速进行搜索 必背,必做: 1.可以通过回车键来进行搜索或者提交操作 2.添加的信息要按照id倒序进行排列 3.进行搜索操作时加入js loading操作(不仅告诉用户所进行的请求正在被处理,而且防止用户多次点击提交操作) 4.当进行删除操作的时候要弹出提示框,警告用户要进行删除操作,是否确认,如果删除成功则弹出提示框告诉用户。 5.减少用户操作的步骤 6.通过ztree,以及kindeiditor来提高用户的体验度 sql优化 1、SELECT子句中避免使用 *, 尽量应该根据业务需求按字段进行查询 2、尽量多使用COMMIT如对大数据量的分段批量提交释放了资源,减轻了服务器压力 3、在写sql语句的话,尽量保持每次查询的sql语句字段用大写,因为oracle总是先解析sql语句,把小写的字母转换成大写的再执行 4、用UNION-ALL 替换UNION,因为UNION-ALL不会过滤重复数据,所执行效率要快于UNION,并且UNION可以自动排序,而UNION-ALL不会 5、避免在索引列上使用计算和函数,这样索引就不能使用 Sql优化精简版: 1.(重点)(必须说) SELECT语句中避免使用 *,尽量应该根据业务需求按字段进行查询 举例:如果表中有个字段用的是clob或者是blob这种大数据字段的话,他们的查询应该根据业务需要来进行指定字段的查询,切记勿直接用* 2.(重点) 删除重复记录(oracle): 最高效的删除重复记录方法(因为使用了ROWID)例子: DELETE FROM EMP E WHERE E.ROWID > (SELECT MIN(X.ROWID) FROM EMP X WHERE X.EMP_NO = E.EMP_NO); 3.用>=替换> 如一个表有100万记录,一个数值型字段A, A=0时,有30万条; A=1时,有30万条; A=2时,有39万条; A=3时,有1万记录。 那么执行A>2与 A>=3 的效果就有很大的区别了,因为 A>2 时,ORACLE会先找出为2的记录索引再进行比较,而A>=3时ORACLE则直接找到=3的记录索引。 4.(重点)尽量多使用COMMIT如对大数据量的分段批量提交 5. (重点)用NOT EXISTS 或(外连接+判断为空)方案 替换 NOT IN操作符此操作是强列推荐不使用的,因为它不能应用表的索引。推荐方案:用NOT EXISTS或(外连接+判断为空)方案代替 6.(重点 必须说)LIKE操作符(大数据的全文检索使用luncene)(solr)因为使用like不当,会导致性能问题,原因是like在左右两边都有%的时候,不会使用索引。 如LIKE '%5400%'这种查询不会引用索引,而LIKE 'X5400%'则会引用范围索引。 一个实际例子: 查询营业编号YY_BH LIKE '%5400%'这个条件会产生全表扫描,如果改成YY_BH LIKE 'X5400%' OR YY_BH LIKE 'B5400%'则会利用YY_BH的索引进行两个范围的查询,性能肯定大大提高。 7.(重点,必须说)避免在索引列上使用计算和函数,这样索引就不能使用 举例: 低效: SELECT… FROM DEPT WHERE SAL * 12 > 25000; 高效: SELECT… FROM DEPT WHERE SAL > 25000/12; 8.(重点 必须说)用UNION-ALL 替换UNION, 因为UNION-ALL不会过滤重复数据而且不会自动排序,所执行效率要快于UNION。 9.(优化,重点,3个方面 a.缓存 b.分段批量 c.存储过程)减少访问数据库的次数 举例:如果批量删除多条数据,可以用 delete from tableName where id in (1,2,3) 而不要用多条delete语句进行删除 10.(重点 必须说)用TRUNCATE替代DELETE TRUNCATE不记录日志,DELETE记录日志,所以TRUNCATE要快于DELETE但是一旦用TRUNCATE进行删除就不能进行恢复,TRUNCATE是删除整张表的数据不能加where条件。 ================================================================== mysql,sqlserver中如果 id为自增类型,那么如果用TRUNCATE删除,则id字段再插入数据时从1开始,如果delete删除的话,则从删除之前的id的值继续增长。 防sql注入 针对防sql注入,我们通常是这样做的: 首先在前台页面对用户输入信息进行js验证,对一些特殊字符进行屏蔽,比如:or ,单引号,--,= ,还有就是限制用户名输入的长度,我们一般将其限制在6---13位。另外,对于用户的敏感信息我们进行Md5加密,还有,为了增加用户体验度和用户友好度,为了不使用户看到一些详细的异常信息我们会进行错误信息页面的定制,像404,500错误。另一个我层面讲,这样做也是为了保护我们的一些重要信息。此外,我们会给特定的人分配定定的权限,而不是给其分配管理员权限! sql注入 所谓SQL注入,就是通过一些含有特殊字符的sql语句发送到服务器欺骗服务器并进行攻击。(特殊字符:or, 单引号,--,空格) Sql注入的防护 1.永远不要信任用户的输入。对用户的输入进行校验,可以通过正则表达式(js正则或者java后台正则),或限制长度;对单引号和双"-"进行转换等。 2.永远不要使用动态拼装sql,使用参数化的sql。(永远不要使用+号拼接sql字符串,而是使用?传参的方式进行) 3.不要给用户太高的权限而根据需求进行赋权 4.对敏感信息进行加密如md5(单向加密不可逆转)。 5.自定义错误页面。目的是为了不把我们的程序的bug暴露在别有用心的人的面前。而去不会让用户看到报错的页面,也提高了用户的体验度。 SQL注入防范 使用参数化的过滤性语句 要防御SQL注入,用户的输入就绝对不能直接被嵌入到SQL语句中。恰恰相反,用户的输入必须进行过滤,或者使用参数化的语句。参数化的语句使用参数而不是将用户输入嵌入到语句中。在多数情况中,SQL语句就得以修正。然后,用户输入就被限于一个参数。 输入验证 检查用户输入的合法性,确信输入的内容只包含合法的数据。数据检查应当在客户端和服务器端(java代码)都执行之所以要执行服务器端验证,是为了弥补客户端验证机制脆弱的安全性。 在客户端,攻击者完全有可能获得网页的源代码,修改验证合法性的脚本(或者直接删除脚本),然后将非法内容通过修改后的表单提交给服务器。因此,要保证验证操作确实已经执行,唯一的办法就是在服务器端也执行验证。你可以使用许多内建的验证对象,例如Regular Expression Validator,它们能够自动生成验证用的客户端脚本,当然你也可以插入服务器端的方法调用。如果找不到现成的验证对象,你可以通过Custom Validator自己创建一个。 错误消息处理 防范SQL注入,还要避免出现一些详细的错误消息,因为黑客们可以利用这些消息。要使用一种标准的输入确认机制来验证所有的输入数据的长度、类型、语句、企业规则等。 加密处理 将用户登录名称、密码等数据加密保存。加密用户输入的数据,然后再将它与数据库中保存的数据比较,这相当于对用户输入的数据进行了“消毒”处理,用户输入的数据不再对数据库有任何特殊的意义,从而也就防止了攻击者注入SQL命令。 存储过程来执行所有的查询 SQL参数的传递方式将防止攻击者利用单引号和连字符实施攻击。此外,它还使得数据库权限可以限制到只允许特定的存储过程执行,所有的用户输入必须遵从被调用的存储过程的安全上下文,这样就很难再发生注入式攻击了。 使用专业的漏洞扫描工具 攻击者们目前正在自动搜索攻击目标并实施攻击,其技术甚至可以轻易地被应用于其它的Web架构中的漏洞。企业应当投资于一些专业的漏洞扫描工具,如大名鼎鼎的Acunetix的Web漏洞扫描程序等。一个完善的漏洞扫描程序不同于网络扫描程序,它专门查找网站上的SQL注入式漏洞。最新的漏洞扫描程序可以查找最新发现的漏洞。 确保数据库安全 锁定你的数据库的安全,只给访问数据库的web应用功能所需的最低的权限,撤销不必要的公共许可,使用强大的加密技术来保护敏感数据并维护审查跟踪。如果web应用不需要访问某些表,那么确认它没有访问这些表的权限。如果web应用只需要只读的权限,那么就禁止它对此表的 drop 、insert、update、delete 的权限,并确保数据库打了最新补丁。 安全审评 在部署应用系统前,始终要做安全审评。建立一个正式的安全过程,并且每次做更新时,要对所有的编码做审评。开发队伍在正式上线前会做很详细的安全审评,然后在几周或几个月之后他们做一些很小的更新时,他们会跳过安全审评这关,“就是一个小小的更新,我们以后再做编码审评好了”。请始终坚持做安全审评。 数据库中常用术语: ddl:数据定义语言 Create Drop Alter dml:数据操纵语言 insert update delete select dcl:数据控制语言 grant revoke tcl:事务控制语言 commit rollback

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册