• 由"软件是干什么的"引发的思考


            自工作以来,都只在进行模块的开发,很少站在整个项目的角度思考过。甚至,自己开发的软件,自己都没有去用过,包括开发的一些APP,都没有下载来认真体验过、思考过。却对自己手机上那些用过的APP评头品足的。其实,这种"挑剔"的精神,如果放在自己开发的项目上,即站在用户额角度来考虑,兴许能让自己成长更快。博主是半路出家的程序员,对很多软件的基础知识都有所缺失,但是这不是借口。

            本周末闲来无事,脑海中一直回旋着一个问题:软件是干什么的?
            之前从来没有思考过这个问题。只是为了工作而工作,只是为了敲代码而敲代码。领导分配什么任务,就按部就班完成什么任务。很少再多问一个为什么。可能这就是我们难以成长或者成长很慢的的原因之一。

    软件是干什么的?

    软件的本质只是一个处理信息的工具。也就是,软件只是起一个辅导作用,核心还是信息,即数据。

    那在开发软件的过程中,我们是不是得重新审核以下几个问题:

    • 程序中哪些数据是静态的?哪些数据是动态的?
    • 程序中哪些数据需要持久化?哪些数据不需要持久化?分别如何处理?
    • 数据量是大是小?是大该如何处理?是小该如何处理?
    • 数据的生命周期如何?从哪里开始?到哪里结束?
    • 数据是如何流转的?特别是一些状态值。
    • 数据的改变是由哪些因素引起的?鼠标点击?键盘输入?组件之间的通信?任务调度?等等。
    • 程序中的数据是以何种结构存储的?
    • 不同的数据结构如何选择合适的算法?
    • ......
              之前听过一些业界大牛说过,一个系统采用什么样的语言、什么样的框架,那都不重要。当时不明白这句话的意思。现在慢慢有了一点的感悟。是的,采用什么样的语言、什么样的框架,那都不是事。重要的是:功能实现、效率(开发效率和系统运行效率)提高、用户体验提升。

            结合自己正在做的项目,目前只能想到这几个问题。欢迎大家指正、建议、补充、解答。

  • 相关阅读:
    Kali渗透测试——UPNP网关发现工具Miranda
    Kali渗透测试——UPNP网关发现工具Miranda
    Kali渗透测试——EtherApe
    Kali渗透测试——EtherApe
    ValueError: Input 0 of node import/save/Assign was passed float from import/beta1_power:0 incompatib
    tensorflow C++:You must define TF_LIB_GTL_ALIGNED_CHAR_ARRAY for your compiler
    tensorflow C++手写数字识别
    使用C/C++编写Python扩展库
    软中断和硬中断
    系统调用和函数调用
  • 原文地址:https://www.cnblogs.com/yanfei1819/p/8325984.html
Copyright © 2020-2023  润新知