【软件构造】——课程篇 高屋建瓴,从宏观角度谈软件构造
初学软件构造,私以为是很使用的课程。大概与自身经历有很大关系。我是一名实用主义者,目前也负责着多个项目的开发工作,可以说是个初级程序猿。为此在课程学习中可能更倾向于工程友好型课程。软构可能据名解义便是如此。软件构造,讲究构造软件的种种技巧。计算机已经发展了数十年的时间,各方面理论也不断发展。在这里我不评论学校课程设置上是否存在无法与时俱进的问题,我想从实际应用层面出发,高屋建瓴的从抽象角度谈一谈我对构造软件的看法。
从我的角度看,软件的存在的意义是要更好的解决用户的需求,因此软件构造的第一大原则应该是用户友好。一种很经典的商业模式,SaaS,软件即服务,便是公司为用户提供能够解决其特定需求而以软件形式提供服务。很经典的SaaS公司,JetBrain,便是如此(BTW,很喜欢他们家的产品)。他们解决了开发者需要开发友好的IDE的需求。这里的用户友好不仅仅是解决了用户的需求,并且应该是很好的解决了,让用户的体验更好。这里不得不举一个反例,很多学校的教务系统,垃圾的要死好吧?很多SaaS公司会遇到的问题,尤其是2B公司,用户体验极差。为什么?因为用的人和做的人不是一批人。很多2B产品的体验极差,由此也使得近几年低代码平台大火,因为用户可以轻易按照自己需求构造“自己友好”的软件。这也是开发者一个需要注意的很大问题,用户都不愿意用你的软件,搁这自我感动呢?因此,软件构造的首要原则——用户友好。只有这样你才能继续往下。
有了用户需求,软件构造我认为可以分解成三部分,前端、后端和数据端。这里我觉得用人来比喻很形象:人的骨架是后端,用来体现软件的运作原理;人的皮就是前端,能否让别人看着你觉得赏心悦目,前端做的就很出色了(要让用户馋你身子
【软件构造】——课程篇 高屋建瓴,从宏观角度谈软件构造相关推荐
- 软件随想录:程序员部落酋长Joel谈软件(local.joelonsoftware.com/wiki)-23
The Joel on Software Translation Project:让错的程序看得出错 From The Joel on Software Translation Project Jum ...
- 软件随想录:程序员部落酋长Joel谈软件(阮一峰译)-2
2. 寻找优秀的程序员 2006年9月6日,星期三 优秀的程序员都在哪里 这是你第一次公开招募雇员.如同大多数人一样,你会发布广告,可能也会浏览一些大型的网上论坛,然后你就收到了一吨的简历. 一份份看 ...
- 软件随想录:程序员部落酋长Joel谈软件(阮一峰译)-3
3. 寻找优秀的程序员之实战指南 2006年9月7日,星期四 你是一个雇主.你在所有正确的地方刊登了招聘广告,你有一个完善的实习生制度,你面试了所有你想要的人.但是很不幸,如果优秀的程序员不愿意为你工 ...
- 哈工大软件构造课程知识点总结(一)
系列文章目录 哈工大软件构造课程知识点总结(一) 哈工大软件构造课程知识点总结(二) 哈工大软件构造课程知识点总结(三) 哈工大软件构造课程知识点总结(四) 哈工大软件构造课程知识点总结(五) 哈工大 ...
- 哈工大软件构造课程知识点总结(二)
系列文章目录 哈工大软件构造课程知识点总结(一) 哈工大软件构造课程知识点总结(二) 哈工大软件构造课程知识点总结(三) 哈工大软件构造课程知识点总结(四) 哈工大软件构造课程知识点总结(五) 哈工大 ...
- 哈工大软件构造课程知识点总结(三)
系列文章目录 哈工大软件构造课程知识点总结(一) 哈工大软件构造课程知识点总结(二) 哈工大软件构造课程知识点总结(三) 哈工大软件构造课程知识点总结(四) 哈工大软件构造课程知识点总结(五) 哈工大 ...
- 哈工大18年春软件构造课程讨论题
这是哈工大18年春软件构造课程(徐汉川老师)的讨论题目,少部分答案摘录自课件PPT和网上的资源(链接在文中给出).如有错误还望指出,谢谢. 一.在软件测试过程中,"测试用例的数目" ...
- 软件构造课程心得——软件构造实验二(Lab2)
软件构造课程心得--Lab2 1. 实验目标概述 本次实验训练抽象数据类型(ADT)的设计.规约.测试,并使用面向对象 编程(OOP)技术实现 ADT.具体来说: 针对给定的应用问题,从问题描述中识别 ...
- 哈尔滨工业大学软件构造课程学习笔记第一章第一节
1.1 软件构造过程中的多维度视图 一.多维软件视图 1.构建阶段 构建阶段:观点->需求->设计->代码->可安装/可执行包 代码角度:源代码--源代码的逻辑组织方式通过基本 ...
最新文章
- 【模拟】【codeforces】451B Sort the Array
- 测试两个主机之间的连通性_UCloud 全链路大规模网络连通性检测系统详解
- linux赋予文件夹所有权限_linux – 如何将某些用户权限仅授予子文件夹
- 风控业务-模型稳定性评价指标PSI
- Gitflow branch与Docker image tag命名冲突怎么办?
- 抗日战争时期的陈建功和苏步青
- Python基础项目实践之:面向对象方法实现模拟银行管理系统
- C++中多态的基本概念以及虚表的基本概念
- 3台机器配置hadoop集群_复制Hadoop集群之后无法访问端口50070的问题
- shiro配置文件shiro.ini简介说明
- 软件工程----开发大致流程
- 百度AI开放平台学习——EasyDL经典版-图像分类模型训练与验证
- Notepad++ 替代品开源了,好用 !!!
- 【ChatGPT】输出MySQL常用语法汇总
- 技术支持和测试的区别_软件测试与开发岗位,哪个更适合你?
- Win11系统默认用户名怎么进行修改教学
- AD20的最全安装步骤
- python通过ssh通道连接PostgreSQL数据库(mysql等类同)
- vue 安装不上,报错,解决办法如下
- java 字符流读取方法_JAVA字符流方式读取文件 问题!
热门文章
- vue全局自定义字体,提高项目字体美化
- 20160218.CCPP体系具体解释(0028天)
- c语言基础学习(2)
- mysql y m d h i_php时间问题?mysql数据库的时间格式(Y-M-D H:I:S) 在PHP页面想这样显示(Y-M-D) (apos;.#36;rows[apos;ndate...
- 王卫不再担任顺丰速运法人 变更为陈雪颖
- 和风天气开发者使用总结
- 搭建私有云maven文档(超详细)超级容易上手
- Object Removal by Exemplar-Based Inpainting 翻译
- 基本数据类型和内置方法 08
- 基于WPF的桌面宠物开发(一) :WPF简介+环境搭建+简单界面