我开始意识到开发软件(以及其他)是一个不断问自己问题的过程。有关代码质量,关注点分离,最小化依赖关系的问题,...
但是主要的问题是:如果不去精神病医院就可以走多远?
我正在申请一份新工作。昨天我与一个可能的未来雇主一起,他想测试我的编程能力。练习之一是:解释此代码的作用。我浏览了他们开发的应用程序(vb.net中的winforms)的一些代码(这是医院的管理应用程序)。这给了我一次真正看清他们如何对待事物的机会,这真是令人失望。
一些例子:
- 我在某处看到了:调用[在此处插入子例程的名称]->我很震惊:这不是VB6的内容吗?
- 他们使用ado.net拥有一个单独的数据层,但是我必须检查的一种方法将数据集返回到调用层。因此,无论是否使用单独的数据层,应用程序都与ado.net绑定在一起(如果它们从不切换到其他数据访问方法,也永远不会成为问题)。
- 该数据集是按原样读取的,因此它仍然是一种以数据为中心的方法(当然,可以争论您可以在“ Patient”或“ LabAnalysisRequest”等类中放入多少逻辑/行为。
- 我还相信已经看到了通过字符串串联构造的sql查询。
- 他们使用存储过程(对我来说,这意味着:逻辑分散)
- 没有提及视图/控制器:全都是形式驱动的
- 我看到的最丑陋的事情是:
如果是TestEnvironment.IsTesting然后 someVar = [一些硬编码值] 其他 someVar = [一些动态获取的值] 万一 [这里的其他功能]
这与我在学校学到的完全不同:(不可知性)域层,可持性层,表示层,单元测试,...
因此,我改写我的问题:一个人应该是多么基础或教条?程序员应该在多大程度上坚持自己的原则,或者只写能完成这项工作的代码?