首页 文章 精选 留言 我的

精选列表

搜索[推理大模型],共10000篇文章
优秀的个人博客,低调大师

困扰了程序员20年的10大难题

程序猿最艰巨的任务跟编写代碼没得几个关系。编码是逻辑构思的一种实践,这跟程序猿日常工作中的其他任务比起来相对简单。如果你觉得自身還是1个技术水平普通的程序猿,在你真正的能进入到顶尖高手行列前,请保证你已经战胜了下述晋升的阻碍。 1. 解释你在干什么 解释软件开发过程是1个很艰难的事情。那些非程序猿岗位的人或许了解许多有关编程的事情,但很显然,他们不会编程。对于他们而言,我们的生活只是在一间漆黑的房间内趴到键盘前消耗着咖啡。 你会在你的朋友、亲人和同事中遇上这样的人,他会觉得编码并不是1个合理的岗位。 2. 形象的说出软件解决方案 依据某些简短的要求——一般是一知半解的,你需要设计出数据结构,软件架构,代碼算法,通信协议,以及别的任何针对商业问題的解决方法各种构成。并且你必须用某种外行人听的懂的用语将它们表达出来,并需要在要求的時间里提交给客户。 非常少有程序猿能做到这些。 3. 评估工期 这是程序猿痛苦的本源。在开发任务没有完成以前,你是絕對没有可能确定完成这个任务需要的時间。或许程序跟之前写的很类似,但环境变了,问題变了,限定条件变了。 工作经验会提供一定的辨别力,但多数的程序猿都习惯于低估问題難度。这其中的缘故是他们只考虑到编码这方面的要素,而忽视了这个任务清单上的其余事务。 应对1个问題可能会有一万种解决方法,一万种写法。接手其他人写的代碼,代表你要花很多的時间在无数的代碼行里探寻,了解当时原作者的基本思路。并且,要是是1个不相信注释和文档的程序猿留下来的半个工程项目,麻烦事就更大了。 5. 软件边界的模糊蔓延和让人吐血的奇怪功能需求 尽管敏捷开发方法给软件范围的膨胀提供了一定的预备空间,但这并没有带来任何的功效——特别是在是当你碰到某些由一时兴起的怪念头形成的功能需求。你知道这样做一定会失败。你的团队判断这样做一定会失败。但客户认为不错,而当失败不可避免的出現时,全是你的错,因为是你没有了解他们的真正意图。 6. 在缺少优化和过度优化之间找到平衡点 复杂的软件永遠不会作到极致;总会有一些更好的实施方案。你完全可以不停的优化下去,这就是说为啥软件项目从来都没有提早完工的。 而另一面,“这样就行——我之后会优化它的”这类心态也是普遍的。代碼今日好使,但你知道明日可能会出現麻烦或不能用。当然了,你是不需要去修改它的,它将会交给下一个倒霉鬼程序猿。 7. 测试你的代码 单元测试你也写了,软件也提交了测试组,但Bug仍旧存有…… 软件是复杂的,将会含有成百上千行代碼。系统中或者存有千万的各类交互和逻辑路径;你不可能彻底测试它们。 相似的,软件会在不一样的条件下跟不一样的平台上的不一样的软件交互。你不可能所有的都测到。 学习从来不是一个人的事情,要有个相互监督的伙伴,工作需要学习C/C++或者为了入行、转行学习C/C++的伙伴可以私信回复小编“学习”领取全套免费C/C++学习资料、视频 写出好的单元测试是一种乏味且艰辛的工作。理想状况下,测试应当在着手开发设计前就早已写好——但你如何向客户解釋为何4个礼拜结束了依然没有能用的软件? 单元测试并不能覆盖每个问题点。在理想的世界里,应该有一个独立的团队来写测试并积极的去发现问题。不幸的是,对大多数项目来说,这样成本太高,时间不够,于是用开发团队来写测试程序。而开发团队潜意识的会避免很多极端的边界情况。 程序员喜欢用符合逻辑的方式处理所有问题。但用户很少是这样的。他们会发现你永远意想不到的问题。 8. 写软件文档 给代码写文档是一项费力耗时的工作。很少有程序员擅长这个、喜欢这个的,并且很少有程序员会花时间去读它们。 9. 处理IT问题 你每天都在研究技术。你也许是一个HTML或PHP程序员,但你很可能会遇到一些例如硬盘损坏、驱动冲突或软件崩溃的问题。解决这些事情不是你的主要责任,但是,除非你解决了这些问题,否者你将无法继续你的开发工作。 不幸的是,对于IT圈外的人来说,程序员应该是软硬件都精通的人。当他们遇到了问题,他们自己不花时间就解决,直接会找你。不论是遇到什么问题:你是用计算机的,你一定知道如何将预算表导入Sage,如何配置Oracle,或为何在他们的黑莓手机上发不出邮件。 当然了,这些打搅绝对不能成为你完不成工作的理由,也没有报酬,不是吗? 10. 处理人的问题 上面的这些难题都可以总结为“人的问题”。很少有外行人会去建议1个飞行员如何开飞机或建议一个电器工程师如何布线。但很多人却会兴致勃勃的勇敢的建议如何开发软件。 我相信对于这些人没有什么好办法。你需要接受这样的事实:这世界上有一半的智商是低于平均水平的! ... 如有侵权,请联系删除

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

海量大数据大屏分析展示一步到位:DataWorks数据服务对接DataV最佳实践

1. 概述 数据服务(https://ds-cn-shanghai.data.aliyun.com) 是DataWorks产品家族的一员,提供了快速将数据表生成API的能力,通过可视化的向导,一分钟“零代码”就可以生成API,让API开发从未有过如此便捷!同时支持自定义API查询SQL功能,对您的个性化复杂查询逻辑支持照样不在话下。 DataWorks数据服务提供HTTP API服务,采用Serverless架构,您只需关注API本身的查询逻辑,无需关心运行环境等基础设施,零运维成本。 DataWorks提供了涵盖“数据集成-数据开发-机器学习-数据服务”全链路数据研发平台,数据服务作为连接数据应用与数据仓库的桥梁,通过MaxCompute Lightning加速引擎,数据服务可以直接将原本只能离线查询的MaxCompute表直接生成

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

2018辛苦一年了,程序员这样跟大boss谈加薪,谈薪杯具变喜剧

对程序员而言,与老板谈加薪,这是一件比修bug更有难度的事情。 01 谈薪是门难搞的技术活儿 在此之前我们会去思考谈判方法,规划谈判场景,假设谈判结果。双方交流顺畅、加薪成功自然皆大欢喜,如果过程与结果都差强人意,失望之余,说不定还会在老板内心留下“阴影”,最终导致一系列更坏的结果...... 其实,与老板谈薪资也是门技术活儿,在这个过程中,如何才能高效愉悦地与老板交流,最终达到自己的涨薪目标,过程很重要,方法更重要。和大家分享我的一些过来人经验,供大家参考。 02 客观评估工作结果与岗位现状 在和老板谈加薪之前,不妨先梳理清楚以下问题: 你有超过一年时间没有加薪了吗? 你目前的技术能力与薪水是否匹配,有没有低于同地区、同行业、同类职位的薪酬? 你目前工作的这家公司,你最看中的是什么,更广阔的职业发展晋级空间还是其它? 离开这家公司,你是否有更好的机会,去获得更高的薪水? 公司发展是否良性,业务发展速度如何,是否正向赢利或资金充足? 老板在日常工作中对你的工作能力认可吗?评价如何? 如果以上几个问题都OK,那么恭喜你,你的加薪谈判已有胜算了。 03 掌握谈薪技巧增加成功概率 1、挑选合适时机 挑选一个老板心情好、时间充足的时候,彼此的好心情是顺畅交流的基础。 2、开场有礼有术 程序员对话时一定不要“生硬进入”,可以先从谈自己的工作开始,先谈谈自己最近的工作状态、工作进度成长与收获、所负责的项目给公司带来了哪些价值,听听老板如何反应,顺势引入加薪想法... 如果你上来就说:“老板,我要加薪!”,对方会认为你是来摊牌的,不是来谈判的。如果你的老板此时回答:“好的,我同意!”你的内心也会OS一万遍:我嘞个去!这也未免太草率了吧?! 3、始终围绕目标 与boss谈薪,交谈过程可能会有分歧,如果处理不当,场面可能会变得很尴尬,或沉默或争辩,最终不欢而散。遇到有分歧的对话点时,一定要冷静平和交流。 如果遇到boss顾左右而言他,要主动把话题切回到你们有共识的目标上来,始终围绕涨薪需求,围绕公司目标、个人目标,用工作数据、贡献值、价值去证明自己的涨薪理由是合理且值得的。 切记:沟通总是围绕目标,自然就会有结果,如果一不小心被套路跑题了,结果.....就可能没有结果了..... 以上是亲历谈薪之后总结的一些技(套)巧(路),辛苦一年了,如果你正好在过去一年中做出了业绩,收入却没有及时跟上能力的增长,该谈就得大胆谈,机会需要自己争取,希望大家2019都“薪想事成”! 据说,还有一款加薪神器,简单直接、保证疗效,胆儿肥的也可以买个试试~ 文末话题:今年伙伴们都加薪否? 往期博文: 高并发架构系列:Redis缓存和MySQL数据一致性方案详解 高并发架构系列:如何从0到1设计一个MQ消息队列 码了几年代码的程序员,有一定的开发经验,应该如何提升自己? Java 面试题目最全集合1000+ 大放送,能答对70%就去BATJTMD试试~ Java面试题目约1000+涵盖内容包括:JVM、多线程、MySQL、Redis、Kafka、Docker、RocketMQ、Nginx、MQ队列、数据结构、并发编程、并发压测、秒杀架构等。 觉得不错请点赞支持,欢迎留言或进我的个人群179961551领取【架构资料专题目合集90期】、【BATJTMD大厂JAVA面试真题1000+】,本群专用于学习交流技术、分享面试机会,拒绝广告,我也会在群内不定期答题、探讨。

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

详解程序员常用的3大Web安全漏洞防御解决方案:XSS、CSRF及SQL注入

随着互联网的普及,网络安全变得越来越重要,程序员需要掌握最基本的web安全防范,下面列举一些常见的安全漏洞和对应的防御措施。 一 常见的Web安全问题 1.前端安全 XSS 漏洞 CSRF 漏洞 2.后端安全 SQL 注入漏洞 二 XSS漏洞 1.XSS简介 跨站脚本(cross site script)简称为XSS,是一种经常出现在web应用中的计算机安全漏洞,也是web中最主流的攻击方式。XSS是指恶意攻击者利用网站没有对用户提交数据进行转义处理或者过滤不足的缺点,进而添加一些代码,嵌入到web页面中去,使别的用户访问都会执行相应的嵌入代码。 2.XSS攻击的危害 盗取用户资料,比如:登录帐号、网银帐号等;利用用户身份,读取、篡改、添加、删除数据等;盗窃重要的具有商业价值的资料;非法转账;强制发送电子邮件;网站挂马;控制受害者机器向其它网站发起攻击。 3.防止XSS解决方案 XSS的根源主要是没完全过滤客户端提交的数据 ,所以重点是要过滤用户提交的信息。将重要的cookie标记为http only, 这样的话js 中的document.cookie语句就不能获取到cookie了.只允许用户输入我们期望的数据。 例如:age用户年龄只允许用户输入数字,而数字之外的字符都过滤掉。对数据进行Html Encode 处理: 用户将数据提交上来的时候进行HTML编码,将相应的符号转换为实体名称再进行下一步的处理。过滤或移除特殊的Html标签, 例如:过滤js事件的标签。例如 “onclick=”, “onfocus” 等等。 三 CSRF攻击(跨站点请求伪造) 1.CSRF简介 CSRF(Cross-site request forgery)跨站请求伪造,也被称为“One Click Attack”或者Session Riding,通常缩写为CSRF或者XSRF,是一种对网站的恶意利用。XSS主要是利用站点内的信任用户,而CSRF则通过伪装来自受信任用户的请求,来利用受信任的网站。与XSS攻击相比,CSRF更具危险性。 2.CSRF攻击的危害 主要的危害来自于,攻击者盗用用户身份,发送恶意请求。比如:模拟用户发送邮件,发消息,以及支付、转账等。 3.防止CSRF的解决方案 重要数据交互采用POST进行接收,当然是用POST也不是万能的,伪造一个form表单即可破解。 使用验证码,只要是涉及到数据交互就先进行验证码验证,这个方法可以完全解决CSRF。但是出于用户体验考虑,网站不能给所有的操作都加上验证码。因此验证码只能作为一种辅助手段,不能作为主要解决方案。 验证HTTP Referer字段,该字段记录了此次HTTP请求的来源地址,最常见的应用是图片防盗链。 为每个表单添加令牌token并验证。 四 SQL注入漏洞 1.简介 SQL注入是比较常见的网络攻击方式之一,主要是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,实现无帐号登录,甚至篡改数据库。 2.SQL注入的危害 数据库信息泄漏:数据库中存放的用户的隐私信息的泄露; 网页篡改:通过操作数据库对特定网页进行篡改; 数据库被恶意操作:数据库服务器被攻击,数据库的系统管理员帐户被窜改; 服务器被远程控制,被安装后门; 删除和修改数据库表信息。 3.SQL注入的方式 通常情况下,SQL注入的位置包括: 表单提交,主要是POST请求,也包括GET请求; URL参数提交,主要为GET请求参数; Cookie参数提交; HTTP请求头部的一些可修改的值,比如Referer、User_Agent等。 举一个简单的例子,select from user where id=100 ,表示查询id为100的用户信息,如果id=100变为 id=100 or 2=2,sql将变为:select from user where id=100 or 2=2,将把所有user表的信息查询出来,这就是典型的sql注入。 4.防止SQL注入的解决方案 对用户的输入进行校验,使用正则表达式过滤传入的参数; 使用参数化语句,不要拼接sql,也可以使用安全的存储过程; 不要使用管理员权限的数据库连接,为每个应用使用权限有限的数据库连接; 检查数据存储类型; 重要的信息一定要加密。 总之就是既要做好过滤与编码并使用参数化语句,也要把重要的信息进行加密处理,这样SQL注入漏洞才能更好的解决。 -----------------------------------end-------------------------------------- 【mikechen优知】往期博文: 码了几年代码的程序员,有一定的开发经验,应该如何提升自己? 分布式消息系列:详解RocketMQ的简介与演进、架构设计、关键特性与应用场景 高并发架构系列:Kafka、RocketMQ、RabbitMQ的优劣势比较 Java 面试题目最全集合1000+ 大放送,能答对70%就去BATJTMD试试~

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

高并发架构系列:Redis为什么是单线程、及高并发快的3大原因详解

Redis的高并发和快速原因 1.redis是基于内存的,内存的读写速度非常快;2.redis是单线程的,省去了很多上下文切换线程的时间;3.redis使用多路复用技术,可以处理并发的连接。非阻塞IO 内部实现采用epoll,采用了epoll+自己实现的简单的事件框架。epoll中的读、写、关闭、连接都转化成了事件,然后利用epoll的多路复用特性,绝不在io上浪费一点时间。 下面重点介绍单线程设计和IO多路复用核心设计快的原因。 # 为什么Redis是单线程的1.官方答案因为Redis是基于内存的操作,CPU不是Redis的瓶颈,Redis的瓶颈最有可能是机器内存的大小或者网络带宽。既然单线程容易实现,而且CPU不会成为瓶颈,那就顺理成章地采用单线程的方案了。 2.性能指标关于redis的性能,官方网站也有,普通笔记本轻松处理每秒几十万

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

IPv6时代已来:双十一中的IPv6大规模应用实践

2018天猫双11以2135亿的成交额创下了新的记录,新纪录的背后大家可能没有意识到,你已经悄然成为首批互联网IPv6用户。今年天猫双11期间全面支持IPv6,这是IPv6在国内互联网领域首次大规模实践,覆盖了网购、视频直播、位置服务等众多大流量、高并发场景。 就和每个建筑都有自己的地址一样,在网络上,每个联网的设备会有自己的地址:IP,没有地址就无法联网。上世纪80年代初的时候人们设立了IPv4协议来分配地址,但当时无法预料现在有这么多设备要联网,到现在这一地址库已经接近枯竭,每个IP地址的价格也是水涨船高。 随着5G、IoT技术的不断成熟,带来了更大一波的新增入网设备。IPv6作为新的协议对网络地址大大地做了扩容,它多到可以让地球上的每一粒沙子分配到一个独立IP地址,不仅如此,IPv6还提升了转发效率以及通信安全性。 IPv6的

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

开发运维DBA看过来:容器、Docker、DevOps、数据库学习资料(1000+ PPT讲义)大汇总

很多企业都了解DevOps理论,但仍然很难落地,在企业内部,该如何实施DevOps呢?阿里云容器技术专家为你解读DevOps企业最佳实践。 阿里云大学系列精品课:阿里专家带你玩转DevOps企业最佳实践 (限时优惠中,名额有限) 完善的DevOps课程体系,阿里专家团讲解+答疑,理论实践结合助力DevOps落地。我们负责教会您: 快速高质量的应用容器化迁移 从零搭建CI/CD系统标准化交付流程 云原生容器应用交付设计 多种发布模式实现容器化交付 容器化应用性能测试与调优 容器化应用问题诊断、监控与运维 钉钉搜群组:21731923(或扫描文末二维码),加入DevOps技术交流+专家答疑群(更有多项福利等着你)。 容器与DevOps资料下载汇总 阿里 DevOps 转型实践(PDF下载)阿里巴巴大数据运维实践(PDF下载)阿里巴巴高效一站式持续交付(P

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

Service Mesh、K8S、海量数据一致等,六大热点技术邀你来聊

小蚂蚁说: 云原生(Cloud-Native)到底是什么?这个问题一直很难定义。CNCF技术监督委员会最近通过投票确定了其官方定义。如何使其弹性可扩展、稳定高可用、敏捷易维护等特性应用到现有创新场景? 蚂蚁金服将在7月6日与ArchSummit深圳合作举办云原生架构探讨晚场技术交流活动,邀请微服务、中间件、应用开发架构、分布式事务解决方案等技术专家,共同讨论云原生、容器、微服务、海量数据访问等话题。 前言 欢迎大家加入ArchSummit深圳,同众多社区专家以及蚂蚁金服的技术团队一起作探讨和共创,我们希望通过强交流的方式来引发更深层的技术和行业思考,非常期待您与我们现场探讨,下图是活动嘉宾介绍: 现场切磋与线上探讨皆可参与,如果无法来现场请添加蚂蚁金服官方小助手微信号:Ant-Techfin01,回复“云原生架构”,小助手会把你拉入交流群,

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

阿里巴巴登顶全球企业创新榜,被美国四大互联网公司视为头号对手

在最新发布的毕马威2018年度创新报告中,阿里巴巴被评为地球上最具科技颠覆力的公司。排在阿里巴巴之后的,是Facebook、亚马逊、谷歌等美国科技巨头。 毕马威这份科技创新报告中在科技界和商业界颇有影响力。这家全球著名的会计师事务所,在深度调研近800位科技公司高管的基础上,完成了这份年度创新报告。 《福布斯》6月11日报道说,这是中国公司第一次在毕马威年度创新报告中拔得头筹,超过“硅谷四杰”(Facebook、Amazon、Google和Netfix, 也就是通常所说的FANG)。 在美国,有19%参与调查的科技公司高管最担心阿里巴巴将来可能颠覆他们的公司,而选择Facebook的这一比例为13%。换句话说,美国科技公司高管们认为,阿里巴巴的科技颠覆力远远大于Facebook等科技公司。 在中国,各有12%参与调查的科技公司高管认为Fa

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

蚂蚁金服同时斩获2018中国金融创新两大金融科技创新奖

小蚂蚁说: 中国金融创新论坛由《银行家》杂志社、中央电视台、中国社科学院金融研究所、中央财经大学共同举办,其中 “中国金融创新奖”由《银行家》杂志于2007年发起,至今已成功连续举办多届,评选环节历经数月专家多轮评审筛选,以及网络公开投票等环节,是中国金融创新行业权威评选之一。 从第一届开始至今,每一次盛典都是中国金融界最盛大的聚会,每一个奖项都是金融从业人员引以为傲的资本。 前言 蚂蚁金服蚂蚁金融云总监娄恒 近日,2018 中国金融创新论坛暨“2018中国金融创新奖”颁奖典礼在北京圆满落幕。在本次论坛的重头戏——“2018中国金融创奖颁奖典礼”上,凭借领先的数字银行解决方案,蚂蚁金服同时斩获《银行家》“最佳金融科技创新奖”和“十佳金融科技产品奖”。 作为本次获奖的主角,数字银行解决方案是蚂蚁金服在多年实践下,结合全球数字化转型的趋势,并植入

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

沈晓卫:AI、量子计算、区块链三大浪潮,人工智能时代的创新战略前瞻

人工智能、区块链、量子计算是当下三个最有潜力的技术。在这个地球上,能同时研究这三种技术的公司并不多,能够逐渐实现这三种技术商业化的公司,更是凤毛麟角。 “蓝色巨人”IBM将这三种技术集于一身,把企业人工智能成功应用到医疗、教育等行业,并研发出50位的量子计算原型机,悄然改变计算与商业的格局。同时,IBM已经成为企业级区块链市场上的最大玩家,并将区块链技术和人工智能技术结合,在合适的行业中做应用。 3月29日,IBM全球副总裁、IBM大中华区首席技术官、IBM中国研究院院长沈晓卫出席2018新智元AI产业跃迁峰会,做了题为《预见人工智能时代的创新与跃迁》的演讲,预见AI的升级与跃迁。 全球百位CEO关注的三个话题:企业专长、数据、平台 不久前,IBM与全球的一百位CEO举行了一次对话,这些CEO来自不同的行业,他们企业的业务涵盖了全球

资源下载

更多资源
Mario

Mario

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

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Spring

Spring

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

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

用户登录
用户注册