我所热衷的编程生涯 连载(11)

来源:互联网 发布:国税普通发票打印软件 编辑:程序博客网 时间:2024/04/26 00:55

    话说一停就是好几个月没有更新文章, 如果侥幸还有关注的读者, 我觉得真是抱歉了. 希望你还能接着看~
    最近在做Silk平台(之前的文章介绍过~)下N多组件的跨平台移植, 先移植到Linux下再考虑MacOS. 界面重新用wxWidgets实现, 还好原来底层组件封装的比较好, 要不现在工作量就大了啊~ 呵呵. 其实C++跨平台并没有我之前想象的那么神秘和复杂, 主要注意使用标准语言, 避开一些系统特性关联性很强的宏, 语法, API什么的, 而这些就封装成统一的接口即可. 移植工作大致算起来还是比较顺利的, 这点比较欣慰, 把组件移植到Ubuntu, OpenSuse等Linux平台上进行编译, 和测试程序的调试, 当测试程序完整顺利的完成全部功能和性能方面的测试, 还是小激动了一把. 自己感觉还是蛮不容易的, 因为之前开发的时候并没有考虑到跨平台的通用性, 所以对移植还是很忐忑的, 当全部测试用例通过测试, 最终的数据和Window下的完全一致时, 心里的大石总算放下来了~
    我考虑的网络应用平台, 整体应用策略就是需要跨平台的, 后续还会包括手机客户端的. 所以代码移植我虽然没有考虑过, 但是整体产品的通用性还是想的比较多的. 以前开发并没有太注重这方面, 很多时候都是使用系统强相关的特性来提升产品应用性能, 反而忽略了通用性. 其实这也是需要平衡的. 应用范围太狭隘的产品也许会很专业, 但是某些情况下也会限制其产品本来在市场环境下的竞争力, 而这种固步自封的状态是自寻死路的, 特别是对于广大客户应用的.
    以前一直专注于Windows平台下的开发, 涉及到Linux的东西全部自动回避, 因为不了解也因为没有涉足的必要. 而今不同了, 虽然对研究Linux内核依旧没有兴趣, 不过相信在平台扩展时迟早是会或多或少接触一些的. 我对自己的定位就是, 不需要特别的去了解某些技术和领域, 但是产品需要的时候, 就要做预研, 分析, 甚至深入研究. 我觉得这样才是效率最高, 关注点最集中的方式. 对于一个大型的平台型产品, 不这样做迟早累死. 
    在Linux下面开发还是蛮有意思的, 大多数时候是使用命令行来操作, 很少用到IDE, 感觉又回到了以前Dos下的状态, 很温馨熟悉的感觉. 而且有很多的开源组件, 开源框架可以用, 开发起来感觉和Windows上做开发是完全不一样的. 还好C++都是通的, 要不我一时半会儿还真适应不过来的, 呵呵. 不过话说回来, 我在移植过程中还是遇到一些小麻烦的. 比如gtk+的安装啊, 对于我们这些Linux新手, 通过源码编译安装这样霸气的组件时, 手足无措的, 虽然网上有很多的教程, 但是遇到刁钻的环境问题还是挺难办的. 了解和熟悉真的有很大的差距啊. 
    其实在整个平台产品的开发过程中, 还是经历了不少冥想, 担忧, 激进, 阻塞, 瓶颈. 这还是一步步的克服困难走了过来. 其实对于开发一个大型的软件, 还真是有蛮多艰辛的, 不过苦也乐, 甜也乐, 软件开发就是这样一个过程. 有很多时候都会迷茫于市场应用, 身边会有很多的人给你说, "这方面的应用已经有很多拉~", "有没有创新的东西啊?", "产品稳定性怎么保证啊?", "怎么进行市场扩展啊?", "相比同类产品你这个优势在哪里啊?"  其实我觉得问的都在点子上, 很多问题还是确认认真的做过市场调查和分析, 对于自己的产品也还是有一定的前景展望和规划, 只是目前产品只是个雏形, 很多考虑都太超前了, 就算是做风险预防, 也还是太早了. 相当于才怀孕就把孩子的大学都定好了. 我这个人还是比较注重实际, 太远的不会想太多, 太近的不会纠缠很久, 把握时机也许才是最好的控制手段. 目前对于我来说主要任务还是将这个产品从雏形发展到成型, 这样产品有了, 才能根据之前的市场调查, 预研和整体规划给产品制定出一个长远的生存目标, 在这个过程中不断的调整产品功能和细节, 以达到市场需求.
    最近可能会涉及到工作的变迁吧, 自己的产品也会暂时的停止开发, 毕竟得先考虑吃饭的问题啊. 到时候也没有机会在这里发帖了, 还是蛮可惜的. 希望尽量多写点多分享点心得吧.

    未完待续...