笔记——专访李运华:程序员如何在技术上提升自己

article/2025/9/1 11:09:35
原文链接:http://www.csdn.net/article/2014-10-20/2822190
摘要:

专访李运华:程序员如何在技术上提升自己
方法:
1 写博客
2 链式学习:从一个点不断学习相关的知识
3 闭环学习:了解整个功能或业务的全流程实现,涉及了哪些模块和系统,每个模块和系统主要负责什么功能,涉及到什么技术,性能怎样,有什么注意点。
图书推荐:
羊皮卷、异类、随机漫步的傻瓜
优秀程序员的技能和修养:
1 快速学习的能力;4W2H,
a 这个技术解决什么问题?
b 比较适合在哪些场景应用?
c 这个技术跟已经掌握的哪个知识或技能类似,有什么差别、特点、优缺点;
d 写demo,应用;
e 研究机制、看源码;
2 良好的理解能力;(理解需求)
3 持续不断的学习;
4 乐于分享;
如何安排时间:
利用碎片时间
团队管理心得:
1 不能完全放弃技术;
2 帮助组员提升;
3 身先士卒;
面向对象和编程语言
专栏《面向对象葵花宝典》
心中的大牛
能够设计和实现一个完整的系统
-----------
-----------
延伸阅读:专栏《面向对象葵花宝典》  http://blog.csdn.net/column/details/oobaodian.html
1 (4)面向对象是瑞士军刀还是一把锤子?
  a 面向对象的核心是“可扩展性”;
  b 面向对象的应用范围是“经常变化的地方”(企业应用、互联网应用)
QQ图片20141207223554.jpg
???可伸缩性、可移植性、可维护性跟面向对象没有关系吗?
2 (5) 面向对象迷思:面向对象导致性能下降?
a 性能好坏是由设计决定的,而不是由语言决定的,更不会因为采用了面向对象而导致性能的降低;
3 (6)不要说你懂“类”
a 类是一组相似事物的统称。
4 (7) 对象
a 对象是类的一个实例
5  (8) 接口
a 接口是一组相关的交互功能点定义的集合;
6 (9)抽象类
a 抽象类只能继承,不能实例化
b 是介于类和接口之间的概念,同时具备类和接口的部分特性。
7 (10)抽象详解
a 抽取出来比较像的部分
b 抽象的作用:划分类别,隔离关注点,降低复杂度。
8 (11)封装(12)继承(13)多态
a 什么需要封装?不想让别人知道的东西。
b 为什么封装?保护隐私,隔离复杂度,
9 (14)面向对象技术流程
a 需求模型
(记录客户需求;和客户一起分析问题,完善需求;引导客户的需求)
(用例分析、功能点提取、用例图、系统顺序图)
b 领域模型 
(找名称、加属性、连关系)
c 设计模型
静态模型主要用于指导类的声明,包括类名称,属性名,方法名;而动态模型主要用于指导类的实现,主要就是每个方法内部的具体实现
d 实现模型(类模型)
领域类映射--告诉你类从哪里来:从需求来,晕晕晕)
应用设计原则和设计模式:)
(设计原则SOLID:单一职责、开放/封闭[对于扩展开放、对于修改封闭????]
、Liskov替换[对象应该是可以在不改变程序正确性的前提下被它的子类所替代]
、接口隔离[多个特定客户端接口要好于一个宽泛用途的接口]
、依赖反转[依赖于抽象而不是一个实例]
扩展阅读,《敏捷软件开发:原则、模式与实践
(设计模式: 扩展阅读,《设计模式--可复用面向对象软件的基础
(拆分辅助类)
(不是一个设计的步骤、而是实施的一个步骤)
10 动态模型设计
待续。。。


http://chatgpt.dhexx.cn/article/RJ6uxrJd.shtml

相关文章

【从零开始学架构-李运华】09|架构设计原则案例

【淘宝】 个人网站 > Oracle/支付宝/旺旺 > Java时代1.0 > Java时代2.0 > Java时代3.0 > 分布式时代 买一个快速可用、快速开发的系统。 MySQL升级Oracle,买性能 3. PHP切换Java,重构网站 4. 增加各种组件框架优化性能控制成本 5. 去I…

【从零开始学架构-李运华】05|复杂度来源:高可用

高可用的定义 系统无中断地执行其功能的能力,代表系统的可用性成都,是进行系统设计时的准则之一。 虽然方案五花八门但本质就是“冗余”! 与高性能的区别 高性能增加机器在于扩展处理性能,高可用在于增加冗余单元防止中断。 计算…

【从零开始学架构-李运华】04|复杂度来源:高性能

复杂度的六个来源之一:高性能 运算性能迅猛发展、软件复杂度发展、硬件存储发展。 用来代替旧技术的新技术才会给软件系统带来复杂度,而用来淘汰旧技术的新技术则不用担心。 1.单台计算机 手工操作->批处理->进程->分时多进程->进程通信-&…

【从零开始学架构-李运华】03|架构设计的目的

架构设计的误区 系统不一定需要架构设计; 架构设计不一定能提升开发效率; 好的架构设计能促进业务发展; 不是所有系统都需要架构设计; 等等…… 架构设计的真正目的 为了解决软件复杂度带来的问题 如何下手架构设计?…

李运华《从零开始学架构》——架构设计三原则

课程链接 https://time.geekbang.org/column/intro/100006601?utm_sourcetime_web&utm_mediummenu&utm_termtimewebmenu 分割线 前面几期专栏,我跟你系统的聊了架构设计的主要目的是为了解决软件系统复杂度带来的问题,并分析了复杂度的来源…

专访李运华:程序员如何在技术上提升自己

摘要:社区之星第56期采访了UC的软件工程师李运华,他先后经历了电信行业和互联网行业。在本次采访中,李老师分享了他的职场经历、团队管理经验、程序员提升自己的方法和应具备的素养,以及谈了对面向对象和编程语言看法。 李运华&a…

阿里P9李运华:架构到底是指什么?

你好,我是李运华。 2018 年,我发布了《从 0 开始学架构》这门课程,分享了我之前在电信业务和移动互联网业务方面的经验和感悟。 后来,我转岗去了蚂蚁国际,从事更加复杂的支付业务。为什么说支付业务更加复杂&#xf…

Rust之fluid用法(fltk ui 设计器)

fl2rust 用法 $ cargo install fl2rust然后运行&#xff1a; $ fl2rust <fl file>.fl > <output file>.rs 要通过 cargo 实现自动化&#xff0c;我们可以通过将 fl2rust 添加到构建依赖项中来将其用作库&#xff1a; # Cargo.toml [dependencies] fltk &q…

FLTK学习笔记2-回调函数

FLTK学习笔记2-回调函数 回调函数为控件添加回调函数程序示例 回调函数 回调函数&#xff08;Callback&#xff09;简单说来就是一个以函数指针的方式被调用的函数。 考虑如下情况&#xff0c;我们编写了一个整数排序算法函数mySort&#xff1a; void mySort(std::vector<…

rust 使用fltk 的小问题

rust 使用fltk 的小问题 windowns下进行编译使用cargo build --release 打包出现以下问题 最近有需求写一个简单的桌面应用程序&#xff0c;正好使用rust来练练手&#xff0c;中间碰到一些问题&#xff0c;尤其fltk 打包有个cmd黑框就很恶心。只记录一些国内网络上资料较少的问…

gmsh+fltk配置过程

本文主要讲解如何利用cmake进行配置带图形界面的gmsh,因为gmsh给出的qt范例只有简单的显示功能&#xff0c;而对 fltk中编写了较完整的功能&#xff0c;所以利用fltk进行说明&#xff0c;如需qt可参考链接。本文使用的编译器是vs2019 首先为了编译成功gmsh软件&#xff0c;我们…

FLTK学习笔记1-绘制基本控件(按钮、文本输入、容器)

FLTK学习笔记1-绘制基本控件&#xff08;按钮、文本输入、容器&#xff09; FLTK中的坐标FLTK常用控件按钮控件文本控件容器控件 绘制基本控件 FLTK中的坐标 在FLTK中坐标均为正整数&#xff0c;其单位是像素&#xff08;pixel&#xff09;&#xff0c;原点&#xff08;x0, y0…

FLTK中的字体

FLTK中的字体 字体在FLTK中的表示获取系统的字体编号表程序示例 字体在FLTK中的表示 在FLTK中&#xff0c;系统中的每一种字体都对应着一个整数类型(严格来讲是Fl_Font类型&#xff0c;但Fl_Font本身就是int的别名)的字体编号。例如&#xff0c;在本人的系统中“楷体”所对应的…

FLTK学习笔记4-在FLTK中显示图片(上)

FLTK学习笔记4-在FLTK中显示图片&#xff08;上&#xff09; Fl_JPEG_Image和Fl_PNG_ImageFl_Shared_Image程序示例 在FLTK中&#xff0c;并不是任何时候都可以绘图的&#xff08;当然也包括绘制图片&#xff09;&#xff0c;一般来讲我们只能在控件类中的 draw()方法中绘制所…

C++轻量级跨平台桌面GUI库FLTK的简单使用

C的跨平台桌面GUI库有很多&#xff0c;大体上分成两种流派&#xff1a;retained mode和immediate mode。 其中前者是主流的桌面GUI机制框架&#xff0c;包括&#xff1a;Qt、wxwidgets、gtk、juce等后者是一些游戏引擎编辑器常用的GUI机制框架&#xff0c;包括&#xff1a;img…

开源跨平台GUI库Fltk在Deepin Linux下的使用

开源跨平台GUI库Fltk在Deepin Linux下的使用 前言一、下载安装二、样例使用三、自编代码四、后记 前言 在互联网应用漫天的现在&#xff0c;实体企业、工厂却绕不开大量的桌面应用&#xff0c;开发工具有恐龙C#&#xff0c;有难用的MFC&#xff0c;也有没落的Delphi&#xff0…

Ubuntu安装FLTK详细过程

1.官网下载源码压缩包。版本建议最新&#xff0c;我这里的版本是1.3.8 2. 终端输入&#xff1a;sudo apt-get install build-essential xorg-dev libx11-dev libcairo2-dev //此步骤必要&#xff01;&#xff01;&#xff01;安装依赖库&#xff0c;不然后面安装总会出错&#…

[Rust GUI]fltk-rs的helloworld

1、安装VSCode 下载安装VSCode 安装VSCode扩展 rust-analyzer或rust-analyzer(CN) 2、安装Microsoft C 生成工具 访问微软官网下载生成工具&#xff0c;勾选使用 C 的桌面开发之后会自动勾选5个项目 取消勾选以下项目 用于 Windows 的 C CMake 工具 测试工具核心功能 - 生成…

使用CLion配置第一个FLTK界面

文章目录 写在前面安装与配置安装helloworld配置命令行配置CLion 运行结果 写在前面 假期抽时间学习一下跨平台GUI界面的开发, 正好也当做C的练手小项目了. C标准库中没有对于GUI的支持, 需要依赖三方库, 这里我先想到的是老牌跨平台GUI——Qt, 但是作为一个小项目感觉使用Qt有…

FLTK-Rs 2

Trees 树形结构&#xff0c;允许在树中显示项目&#xff0c;使用add方法发添加条目 use fltk::{prelude::*, *}; use fltk::enums::FrameType;fn main() {let a celet mut win window::Window::default().with_size(400, 300);let mut tree tree::Tree::new(5,5,390,290,&…