当前位置: 首页 > news >正文

程序员应知——善于借鉴

最近几天对D语言有了一些了解,据说能够具备和C、C++一样的高性能,语法类似于C#和Java,并且支持当前比较流行的语言——像Ruby和Python——的一些新特性,而且微软还提供了Visual D的插件,可以安装在Visual studio中,从而使用它来开发D语言的程序。

我们会发现,其实这门语言,在很大程度上是以往各种语言长处的结合(不知道是否实现了这一点,但目的应该是这样),与其说是一种新的语言,不如说是在借鉴了很多语言之后,组合出的一种语言。

由此我们可以发现,借鉴具有很强的力量。通过借鉴,我们能够创造出一些新的有自身特色的东西来。

说到借鉴,就不能不说创新,曾经有位朋友拿微软和苹果做过比较:微软最近几年来,在技术上一直没有非常明显的创新,似乎总是跟在别人的后面走,比方说云计算,比方说手机开发,再比方说服务式的web应用等等。而苹果的东西似乎每一种都具有很强的创新性,iPad、iPhone、手表式的ipod,还有传言中的裸眼3D功能的iPad等等,都让人能够眼前一亮。

的确,创新很棒!能够产生不错的效果。相比之下,借鉴似乎就要差一些,而且“山寨”和借鉴之间也有些搞不清楚。然而,我们也应该看到,创新其实也是建立在借鉴的基础之上,而且借鉴也能够产生很不错的效果。毕竟,创新力不是说说就能具备的,也需要长时间的积累和思考,而且还有一些天赋的成分在里面,试问世界上又能有几个乔帮主级别的人物。而借鉴往往更适合我们这些普通人,能够让我们从中受益。

作为程序员来说,也有很多地方都可以采用借鉴的方式来提升自己的能力。

比方说前几天我在百度Web app开发大会上的演讲中,谈到Web应用前端设计如何能够美观的时候,我就借鉴了版面设计的理论(来自于《写个大家看的设计书》),web应用的设计也应该遵循重复、对齐、对比、亲密性四种原则,那样就会达到美观的效果。而谈到设计需要规范的时候,我也借鉴了项目中经常会使用的代码规范,对于前端设计也一样要有相应的规范,那样才能够更利于开发和后期的维护工作。

再比方说之前的一篇blog中,我谈到了如果《以投资的观点学习编程》,这正是在听了公司投资部经理关于投资的一场讲座之后想到的,学习编程和投资一样,也有不少可以触类旁通的地方。

不仅仅如此,软件这个年轻的产业,本身很多方法都是从其他传统行业借鉴过来的,软件架构在很大程度上借鉴了建筑学的知识,而精益的理论更是来自于生产行业,我们能够看到,软件行业的发展与对其他行业的借鉴是分不开的。

而作为程序员,我们应该借鉴什么呢?

首先我想要借鉴已有的程序和项目,当我们想要完成一项任务的时候,不一定要从零开始,毕竟不是考试,我们完全可以先查看一下是否已经有类似的程序或者类似的项目,看看他们是如何完成的,而且在完成的过程中是否有相关的经验和教训,那些都是非常宝贵的财富。当然我们不是要完全地复制,而是要“批判地学习”,在理解了已有内容的基础上,加上自己的思考,从而创建出最适合我们自己的程序。在这个过程中,借鉴本身就是学习和提高的过程。

其次我想可以借鉴在非计算机领域解决问题的方式。我们知道,计算机真正广泛应用在解决问题上,也就是几十年间的事儿,之前遇到问题,传统的行业中一样可以解决,也都形成了不少方法论。那正是我们需要借鉴的地方,不一定在解决问题的时候完全要依赖于计算机,先从非计算机的方式入手,放宽一下自己的视野,可能会有更好的效果。

想要真正实现良好的借鉴,我想我们要时刻有借鉴的准备,机会总是留给又准备的人的,当我们在平时的生活中,或者是在各种书籍中,发现好的解决问题的方法时,就可以试着思考一下,是否可以借鉴到计算机领域中,这样,在以后编程解决问题的时候,可能就会不自觉地使用了。切不可把自己处于一种封闭的状态,对外

http://www.jsqmd.com/news/1125941/

相关文章:

  • Kafka Streams 实战:从状态管理到 exactly-once 生产落地
  • Django模板AJAX局部更新实战:零侵入增强交互体验
  • 166、PCIE在Docker容器中的使用:一次真实调试踩坑记
  • JASP:免费开源统计软件如何让数据分析更简单?3大核心功能解析
  • 如何在Linux上使用FSearch实现极速文件搜索:完整效率指南
  • 萌新入坑不用到处找资源!老宅私藏一站式 ACG 社区二次元之家分享
  • AI绘画本地插件部署指南:实现“指哪改哪”的精准图像编辑
  • codex CLI使用技巧
  • 搜维尔科技:Haption力反馈设备远程操作机械臂Tesollo灵巧手
  • 3大核心技术突破:MathLive数学公式编辑器实战指南
  • 成都知名的中央空调公司有哪些
  • Databricks Genie:语义编译器架构与企业级智能解析实践
  • 前端技术29-Tauri实战:Rust后端、Web前端、安全架构完全指南
  • 什么是开放平台
  • 泛程序运营的7个核心要点,落实即可稳步提升收录
  • TLSFOWARD:如何识别UA与TLS指纹不一致
  • Cherry Studio 配置教程
  • Pytest自动化测试进阶:工程化、数据驱动与性能优化实战
  • MyBatis-Plus 批量操作与 rewriteBatchedStatements 优化
  • AutoUnipus:2025终极版U校园智能刷课神器,彻底解放你的学习时间
  • 智能车视觉算法实战:车库场景下的斑马线精准识别与处理策略
  • 如何高效解决中文OCR识别难题:Tesseract tessdata终极优化指南
  • Transformers.js:浏览器端AI应用的范式革命
  • 护理学论文降AI工具免费推荐:2026年护理学毕业论文知网AIGC超标4.8元一次过完整方案
  • Engine-Sim深度解析:实时内燃机模拟与音频合成的工程艺术
  • 全球首例 AI Agent 勒索攻击:自主完成攻击链意味着什么?
  • GPT-5.5与Codex:从对话助手到自主执行智能体的技术演进与应用实践
  • 自己动手开发编译器(七)递归下降的语法分析器
  • 3个核心优势解析:G-Helper如何成为华硕笔记本用户的轻量化性能管理方案
  • 中小企业选 SaaS 定制开发公司,这几个坑我踩过