“实现能力”与“设计能力”

长安车机破解后能干啥?分享我的UNI-K车机安装第三方应用与优化体验实录 本文详细记录了长安UNI-K车机破解后的实用玩法与深度优化指南,包括安装第三方应用、导航体验升级、影音系统改造及系统美化等。通过工具箱和升级技巧,车主可以大幅提升用车体验,解锁更多隐藏功能。 阅读详情

nicrosoft于 2001.8.17 (http://www.sunistudio.com/nicrosoft/)

我见过太多的代码(我自己以前也是),只注重实现功能。国内绝大多数的程序员都以为实现了就成功了。在开始敲键盘之前,有多少人想过即将被创建的代码会有多少的可维护性?是准备创建用完就扔的代码,还是需要不断升级、改进的代码?如果是需要长期被维护、改进的代码,在最初的时候,如果只是注重实现,而忽略整体框架的设计,那么最终等待程序员的只是无数的bug和灾难。

其实,相对来说,实现是简单的。你能够实现的东西都是基于平台或者特定软硬件环境的。你所实现的,只是因为平台提供给了你这样的功能而已,这个实现并不是你创造出来的。而框架的设计就需要相当的经验。没有人可以一开始就完成一个优秀的框架。

在一次工作中,要为Delphi写几个简单组件,组件类之间有继承关系(很简单,只有两层而已)。对于这个非常微小的“框架”,在最初有了“想当然”的设计之后,就开始动手写代码了。完成父类层的组件后,在写派生类的组件时,才发现当初的“设计”存在问题。那时我奇怪自己当初怎么会有那么奇怪的想法,构建这样的框架。在写到派生类组件时,才发现有些东西是那么的理所当然,而在最初设计的时侯的想法却与之相反!于是,重新构建这些代码,幸好,代码量不大,即使重写,也没有花费多少时间。

我想说的是,即使一个那么简单的框架,我是在第三次重写后,才将其确立下来。同时,获取了宝贵的经验。设计的难处在于,人的思维习惯是从下往上,逐步抽象的。但是,在类的框架设计中,去需要从上往下的设计,也就是逐步细化。而一旦在原始类(如:VCL的TObject)的设计上存在问题的话,那么随着类层次的展开,问题将会逐步放大,最后可能会导致整个框架的崩溃。这就要求设计者具有丰富的经验!

我从不相信程序员的寿命只到35岁,也许35岁以后,实现能力(其实就是工匠能力)有下降的可能,而设计能力是随着经验的增加不降反升的。这才是最宝贵的。

国外的软件开发小组,一般的骨干都是40岁上下的人,那些才是大师级的程序员,而所谓的过了35岁就不能当程序员的程序员根本没有资格被称为程序员。

而软件工程是要将程序员变成编码员,变成流水线上的一环,设计工作由专门的设计师完成(如框架设计师)。也许,分工细化是趋势,但是,我们是满足于做编码员还是希望成长为设及师,取决于我们的眼光及努力。

放开眼光,而不是将自己局限于、沉迷于“实现高手”。实现能力是基础,有一定的实现能力才可能成长,但是,它只是必要条件,而不是充分的。否则,就象爬到山腰就以为自己到了山顶,停滞不前了。那么,你只可能是编码员,你的程序寿命也只到 35岁。

努力积累经验,并且要学会积累经验。有句话说得好,聪明人与笨人的区别并不在于其不犯错误。真正的区别在于,聪明人不会两次犯同样的错误。

LSTM预测股票数据---数据预处理 # 导入相应的模块 import pandas as pd import numpy as np import matplotlib.pyplot as plt import tensorflow as tf # 获取训练集 def get_train_data(data,batch_size = 60 ,time_step = 20,train_begin = 0,train_end = 58... 阅读详情

相关推荐

ESP32-S3 SPI驱动SD卡与FATFS文件系统实践

SPI(串行外设接口)是嵌入式系统中常用的同步串行通信协议,通过主从架构实现全双工通信。其工作原理基于时钟同步和数据线传输,具有接线简单、占用引脚少的优势。在存储扩展场景中,SPI模式可驱动SD卡实现大容量数据存储,配合FATFS文件系统可提供标准化的文件管理能力。ESP32-S3作为乐鑫推出的高性能Wi-Fi/蓝牙双模芯片,其SPI外设支持高达80MHz时钟频率,结合ESP-IDF提供的sdspi_host驱动,开发者能快速实现SD卡存储方案。该技术广泛应用于物联网设备日志存储、传感器数据采集等场景,本实

weixin_29168393的博客 357

终于有些明白设计和实现的区别

自己学习软件开发也有些年头了,因为不是科班出身,大部分的经验是自己摸索的,虽然也看来不少的系统开发的书,总是不得要领,比如说我看过的《软件工程》的教材我想有多个版本了,就是不太理解。开发的系统主要是嵌入式系统,一般来说也不是太复杂,所以总的说来我的经验也算是对付得过去,但是现在嵌入式系统也是越来越复杂了,终于感到自己有些对付不了啦。我的解决方法是找人,花钱培训,这也就是我专栏中有项目管理、信息系统等方面内容的原因了,这里有培训老师的内容,也有我自己的总结。 我在给别人讲解项目管理的时候,我经常举的例子是盖

和风化雨 8095

泛微ecology9 HRMwebservice接口实战:企业组织架构与人员信息同步指南

本文详细介绍了泛微ecology9 HRMwebservice接口在企业系统集成中的实战应用,重点解析了如何通过该接口实现组织架构与人员信息的双向同步。内容涵盖环境配置、核心接口调用、数据格式规范及常见错误排查,旨在帮助开发与运维工程师高效完成主数据同步,提升企业IT管理效率。

weixin_29323365的博客 498

软件工程之设计与实现

软件设计和实现是软件工程过程的一个阶段,在此阶段会开发一个可执行的软件系统。软件设计和实现活动一般来说总是存在重叠,软件设计是一个创造性的活动,在此活动中需要基于客户需求识别软件构件及其关系。实现是将设计实现为一个程序的过程。有时候会有一个独立的设计阶段,其中的设计会被建模和文档化。而其他时候设计存在于程序员的脑海中,或只是在白板或纸上大致地用草图画一下。设计是关于如何解决一个问题,因此总是有一个...

weixin_40768973的博客 371

HCLR-Net: 混合对比学习正则化与局部随机扰动用于水下图像增强

独特贡献在于开发了一种处理负样本的新策略,既保留了负样本的统计特性,又防止网络过度剖析这些样本中的特征信息。通过根据每个通道特征的重要性对模型进行加权,我们可以增强富含上下文信息的通道,从而获得更准确、更详细的特征表示。AHA 模块利用垂直方向上的 Avgpool 和水平方向上的 Maxpool 来捕捉远程依赖关系和准确的位置信息,从而有效确定不同方向上的特征退化。对比学习策略通常旨在最小化正样本之间的欧氏距离,使预测图像更接近理想图像,同时最大化负样本与预测图像之间的距离,使它们进一步远离非理想表征。

G-Howe的博客 1458

Workbench-nCode下发动机引擎应力疲劳分析

在工程数据库中定义材料模型参数,结构场分析基本参数:密度7850Kg/m3、弹性模量210E9Pa、泊松比0.3,疲劳分析参数:应力-疲劳曲线表(S-N Curve),应力-疲劳曲线如下图2所示,如果没有合适的数据可使用结构钢材料进行分析。网格为四面体高阶单元,各零件的单元尺寸如下表1所示,单元质量分布如下图3所示。在workbench平台下搭建分析流程如下图6所示,前述设定完成后,提交求解后即可得到相应的应力、应变结果,更新结果后目录树中会有相应的nCode DesignLife插件,如下图7所示。

ansysxuexizhe的博客 1548

软件工程---07.设计与实现

软件设计和软件实现 软件设计是一个创造性的活动,在此活动中需要基于客户需求识别软件构件及其关系。 软件实现是将设计实现为一个程序的过程 设计模式 设计模式是从Christopher Alexander(Alexander 1979)所提出思想中派生出来的,他认为建筑设计中存在一定的共性模式,这些模式令人喜欢并且有效。 结构/静态模型,使用静态类及其关系描述系统的静态结构。这个阶段需要描述的重...

LXY的博客 2541

【系统分析师】写作框架:软件设计模式及其应用

本文围绕"软件设计模式及其应用"展开论述。首先介绍了近三年参与的某软件开发项目背景及个人承担的系统设计工作。其次系统阐述了设计模式的三大分类:创建型(如工厂方法、单例模式)、结构型(如适配器、装饰器模式)和行为型(如观察者、策略模式),重点分析了各类模式的特点和典型应用场景。最后结合项目实践,详细说明了采用的三种设计模式的具体实施过程及效果,包括提高代码复用性、降低耦合度等优势。文章还总结了项目经验,指出存在的不足及改进方向,强调合理运用设计模式对构建高质量软件系统的重要性。全文通过理论

数据知道的博客 5062

第三章 设计与实现

第三章 设计与实现    给我看你的流程图而藏起你的表,我将仍然是莫名其妙。如果给我你的表,那么我将不再要你的流程图,因为它们太明显了。     以上从Brooks的经典书中摘录的内容想说的是,数据结构设计是程序构造过程的中心环节。一旦数据结构安排好了,算法就像是瓜熟蒂落,编码也比较容易。    这种观点虽然有点过于简单化,但也不是在哄骗人。在前一章里我们考察了各种基本数据结构,它们是许多程序的基...

Coulson_Zhao的博客 587

手把手教你学Simulink实例--基于simulink搭建起一个基础的矩阵变换器仿真模型

矩阵变换器(Matrix Converter, MC)是一种直接将交流电源转换为另一频率和幅值的交流电源的电力电子设备,它不需要中间的直流环节。这种变换器通过控制一组双向开关来实现对输入电压的精确控制,从而产生所需的输出电压波形。Simulink提供了强大的仿真环境,可以用于设计、分析和验证基于矩阵变换器的电源系统。

MHD0815的博客 337

QCC305x-QCC304x系列开发教程之应用程序子系统详解 嵌入式

本文对QCC305x-QCC304x系列芯片的应用程序子系统进行了详细解析,并给出了一个LED闪烁的示例代码。嵌入式系统的开发既需要理论知识的支持,也需要实践经验的积累,希望本文能够为读者在QCC305x-QCC304x系列芯片的开发中提供一些有益的指导。QCC305x-QCC304x系列芯片提供了丰富的外设接口,包括UART、SPI、I2C等,开发者可以根据需求选择适合的接口进行数据传输和控制。QCC305x-QCC304x系列芯片的应用程序子系统是整个嵌入式系统的核心部分,负责管理和执行各种应用程序。

CodeMaven的博客 226

DWR session过期处理方案

项目中使用DWR架构,默认情况下并不能监听到session过期,从而导致了session过期dwr的操作依然可以正常进行,下面是本人总结的一套处理方案:1:web.xml配置dwr的servlet中添加参数:            crossDomainSes

xiongcheng13的专栏 2520

从零实现深度学习框架——理解正则化(一)

本文介绍解决过拟合与欠拟合的方法——正则化,主要介绍L1和L2正则化。

日积月累,天道酬勤 3394

解决DWR session error问题

使用DWR有时候会弹出session error而导致整个项目的DWR部分无法启动 这个解决方式很简单, 打开你项目中的web.xml,找到关于dwr那一段Servlet,如图,加上: crossDomainSessionSecurity false 即可。

qq_1415904132的博客 414

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

如何在dwr中访问session或是request对象

如何在dwr中访问session或是request对象

“夜光寒”的博客 1764

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

DWR出现session error解决方法

今天在使用dwr的时候遇到了session error 错误。解决方法是在web.xml 中添加如下配置 [code="java"] dwr-invoker org.directwebremoting.servlet.DwrServlet debug false logLevel wa...

骑着蚂蚁赶灰机 305

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

dwr 出现session error错误的解决方法

问题描述: 算是一个最简单的dwr的入门demo.也是按照dwr的入门demo写的..但是在运行的时候却出现了下面的问题. 前台页面跳出session error的对话框 而控制台则输出: org.directwebremoting.util.CommonsLoggingOutput error 严重: A request has been denied as a potential C

阿诺 977

DWR3 文件上传显示进度条

最近刚开始学dwr,发现使用起来确实方便多了。现在公司正好有需求要使用文件上传,所以就研究了一下dwr3的文件上传和下载。 上传很方便,但是要显示进度条,我没找到相关的接口,我觉得dwr3应该会提供一个方便的接口用来显示进度条,后来研究dwr3的源码,发现在上传文件时,发现有下面的一段代码 [code="java"] if (session != null) { ...

黑虫 278

dwr3+struts2 deploy on glassfish

0. set java_home and path in enviroment to jdk1.6, remove jdk1.5 from path 1. install glassfish-installer-v2.1.1-b31g-windows-ml.jar 2. java -Xmx256m -jar glassfish-installer-v2.1.1-b31g-windows-ml.ja...

zenzuguo 157

DWR的简单使用

DWR的使用将JAVA和JS之间的距离拉近了; 定义一个类,并编写一个方法;如下: public class IndexAction{ public void setIQ_ID(String iq_id, HttpServletRequest request) throws Exception { System.out.println("from dwr iq_id:=" + i...

Harold 117

DWR中取得session等信息

如何得到DWR中的session等信息看一眼代码马上就明白.只要引入dwr的包就OK.HttpSession session = WebContextFactory.get().getSession();HttpServletResponse response = WebContextFactory.get().getHttpServletResponse();HttpServle

woaitiyu的专栏 7065

DWR中session.及request的用法

 当前的项目中.用到了DWR.以为不用struts没什么关系.结果spring+dwr让我在session获取这块碰到了问题. 如:系统登录页面中我要进行验证码验证.一般生成的验证码是放在session中的.我点登录的时候.用的是dwr.所以是js直接调用后台的方法. 那么后台的方法只是一个普通的java类.是不存在什么request,session的.所以就不到session中的值.当然你要是用

woaitiyu的专栏 1849

如何使用 Ajax 的DWR框架获得 Session

 如何使用 Ajax 的DWR框架.获得Session 值在DWR中需要用到session,request等这些东西的时候,可以用以下方法获取: 1. 使用DWR的API (很多人都不推荐这种做法,经测试,使用起来肯定没问题) WebContext ctx = WebContextFactory.get(); ctx.getSession();ctx.getHttpSe

zhouhongbin123465的专栏 717

DWR应用中如何取得session

 一、在早期的dwr版本.dwr2.0以前的版本通过uk.ltd.getahead.dwr.ExecutionContext的静态方法取得执行上下文环境具体取得session的代码可参考以下import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpSession;import uk.ltd.geta

woaitiyu的专栏 1883

【DWR】解决session error问题

使用DWR有时候会弹出session error而导致整个项目的DWR部分无法启动 这个解决方式很简单, 打开你项目中的web.xml,找到关于dwr那一段Servlet,如图,加上: crossDomainSessionSecurity false 即可。

编程记录,亲测有效 6935
上一篇: C++ FAQ Lite[12]--赋值算符(新)
下一篇: C++ FAQ Lite[13]--算符重载(新)
Nicrosoft
博客等级 码龄26年 9粉丝 45原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值