我发送了求职申请的代码,并得到了以下评论:
谁能给我一个详细的解释,每一个问题提出的评论人?
如果有人对我对挑战的反应感到好奇:Github链接
很抱歉给你这么长的短信,但我想我是在通过分享我的经验来帮助别人。
发布于 2016-03-11 19:12:14
一次处理每一项问题:
关于项目结构
在最好的情况下,这个项目可能是主观的,但是项目通常是通过逻辑地将您的代码划分为子文件夹或子项目,根据它们的一般职责区域,或者它们所属的“层”来构建。例如,模型、视图、控制器、核心应用程序逻辑、共享/公共组件等。
关于编码约定:白间距不一致,超出约定,无视不可变性,明确引用“自我”等。
在编写代码时,严格遵守编码标准是很好的。例如:https://github.com/raywenderlich/swift-style-guide
就编码标准而言,最重要的事情之一是一致性。不一致的代码使用起来不太好,只是看上去草率和不专业。
不变性在这里解释:https://en.wikipedia.org/wiki/Immutable_对象
关于自述文件实践
我不清楚评论员在自述文件中想要什么,但您的自述文件似乎实际上是空的。想必审查员希望看到一些用户级的文档,这些文档是用某种友好的英语语言编写的(例如,如何第一次使用应用程序,它是什么,它做什么,它如何工作,等等)。
关于可维护性、可扩展性、可伸缩性或性能体系结构
在许多方面,这与“实心”和“干”原则相交叉。但也表明您的解决方案缺乏不同“层”的逻辑分离。换句话说,审阅者认为您已经创建了一个“大泥球”。
应用程序和系统通常由几个层组成,每个层彼此干净地分开;例如:
评审员提到了一些具体的词语:
关于干和固原则
这些是常见的软件设计原则,值得花时间学习,并确保您有一个清晰的理解:
SOLID - https://en.wikipedia.org/wiki/SOLID_(面向对象的)_(设计)
干- https://en.wikipedia.org/wiki/Don%27t_重复_你自己
无论是谁审查了您的代码,都清楚地发现了您提交的解决方案中的一些违规行为。违反这些原则的典型代码“标志”包括(但不限于)
我快速查看了您的代码,您的ViewController显然违反了这些原则,特别是您的viewDidLoad()方法,它似乎做了太多的事情。
总的来说,我从查看您的代码中得到的印象(我希望评审人员也会这样做)是,没有任何证据表明您在处理复杂问题或处理在开发人员团队中编写的代码方面有丰富的经验。
最有可能的是,基于这个挑战,他们对你的主要关注是,你无法接受一个比这个挑战大很多倍的项目,有一个团队,并且能够把它分解成层和模块,或者以其他开发人员可以使用的方式构造代码。
但作为一次学习经验,你似乎得到了一些好的、有价值的反馈;下一步可能是采取你已经得到的解决方案,尝试在不同的层之间正确地构造它,并利用这个项目学习如何应用坚实的原则。
发布于 2016-03-11 18:56:56
“干”的意思是“不要重复自己”。他们告诉你“几个地方有重复的代码.”。这很糟糕。如果您必须更改它一次,您可能需要在十几个(或一百)个地方改变它。(许多年前,我不得不对一个真正不懂干巴巴的人编写的代码进行一次大修。不好玩.)
“实心”指的是一堆东西。见这里。他们说,"ViewController有几个责任“,这是一个博佐不-不是在坚实的。
https://softwareengineering.stackexchange.com/questions/312488
复制相似问题