我对发展失去信心,精疲力尽,但工具崇拜救了我



我经常批评对我来说似乎是错误的技术,作为回报,我不仅得到争论,而且还得到直截了当的恶意,怨恨甚至是面子。

针对该技术的注入由开发人员自费开发。 工具崇拜是一件非常奇怪的事情,无法从逻辑上加以解释。 有人说每个人都有邪教,因为思维与思想紧密地交织在一起。 其他人则说这是一种初中疾病-您第一次写东西时就发生了,因为您以为自己的狂吠是上帝的奇迹而感到高兴。

不管是什么,我永远都不会理解这个垃圾。

在我看来,邪教的支持者似乎难以逾越。 而且我总是试图理解哑巴如何变成哑巴,以及为什么我没有成为哑巴。 开始思考和ba! -我意识到我做到了。 我是一个愚蠢的崇拜者,他赞美F#。 当然,这背后还有一个故事。



我从初级C#开发人员开始了我的职业生涯。 原始然后Xamarin,为Android开发。 第一份工作的第一步充满了痛苦。 我一个人使用iOS版本的屏幕截图和gif制作了该应用程序。 一切都解决了,有很多问题,我收到的唯一反馈是“为什么不喜欢图片?”。 那是一场噩梦,我很快就离开了。

他在家学习了六个月,然后在一大笔工作中找到了工作。 团队,指导者,考试,模式,编码审查,严格的皮棉,对质量,可读性和代码性能的最高要求。 一句话-成人方法。 我绝对为自己决定-这正是需要做的事情。 但是事实证明,这场噩梦更加糟糕。

一年多来,我们组成了一个工具模块的整个团队,该模块与旨在开发工具的工具一起使用。 也许正是我们制作模块所需要的。 我们每天都被迫致电印第安人或美国人,目前尚不清楚要报告什么。

在某个时候,我注意到我做的事情越来越少,但是什么都没有改变。 我用断断续续的英语坦率地撒谎:“经过vik ay serch找出bug。 斯蒂尔知道萨克斯风。 维尔大陆»

“好吧,菲尔,听起来不错,”海外说。

有一次,由于我一文不值的耻辱和绝望,我去了当局,要求我被解雇,但由于某种原因,我得到了薪水。 关于这个我已经说过了 。 我既不幽默也不快乐-这是一个自杀的场面,仿佛一文不值的世界已经击败了逻辑世界。

一个奇怪的矛盾,但同时出于无聊和超级野心,我决定在家里扮演一个很棒的开发人员。 在软件项目的帮助下,如何使世界和您的钱包变得更好的想法很多。 我做对了 VSTS中的TK,体系结构,系统要求,项目。 就像公司一样,都是成年人的行为。

尼克尔没有工作。

决定-这个想法很糟糕。 垃圾代码,我想出了一个新主意,退出,一切重复多次。 我告诉我的同事,他们很困惑。 怎么会这样 毕竟,我所做的一切都与已经抢走作品的人完全一样。

有我自尊心的人通常比其他人更容易生活,但付出的代价很多。 您需要高质量的自我欺骗来弥补自己的失败。 我对自己说:任何开发人员都可以做任何事情。 整个问题是如何做到这一点。 我对此“如何”的要求太高了。 它们不适合家庭“初创企业”,也不值得进行无用的业务任务。 有以下想法:“我不准备放弃质量标准。” 即使您需要制作一个放屁到屏幕上的应用程序,我也将尽我所能使它变得高质量和周到。

结果,我在家安排了一个当地的货运企业。 他带来了仪式,流程,命令,但没有带来满足感。 我只是扮演一个没有业务的业务开发人员,例如像Papuan那样用稻草遮蔽了跑道和高塔,现在他希望铁鸟像坐在附近岛屿上的陌生人一样坐在那里。

我写了很多令人难以置信的正式代码,这些代码并没有使我更接近结果,但是相反,我却四处徘徊。 该死的,我的职业是失败和失望的故事。 我吐口水,杜绝自己,只是看了工作中的电视节目,喝了16杯咖啡,抽了半天。

跌入谷底,绝对是偶然,我读了一篇关于F#的关于Habré的文章,我尝试过,诸如此类:“嗯! 不错。” 我的老板很高兴付给我一个月的培训(但是他对此一无所知)。

F#并不难学习,它与C#具有相同的运行时,并且我每天都使用函数方法在TypeScript中进行编程。 因此,我意识到我可以将我的任何项目转移到F#中。 让我将技术技能放在括号之外,因为技能是相对的。 在我现在工作的团队中,我很酷,在F#开发人员的团队中,我最多只能担任助理清洁工的职位。

但就我而言,我已经能够解决问题。 尽管内心深处我很清楚-我什么也不会决定。 转动我的大脑,继续将知识扔进垃圾桶。 我完全对发展失去信心。

有一天我决定放弃所有这一切。 那是冬天,寒冷而黑暗。 我离开了街道上的办公室,走进了独轮车-它不会启动。 最终,发动机发出嘎嘎声。 我不知道之前发生了什么-我感觉到燃烧的气味,或者看到烟。 然后,火焰从引擎盖下喷出。 再过一秒钟,我像一个心理医生一样,在停车场周围跑来跑去,大喊大叫,把我的车开走。

经过五分钟的恐慌和混乱,只有一块旧的烂摊子和各种各样的傻瓜组成的伪经,然后在当地的“窃听”中获得了成千上万的视野。 负30岁,我正穿着一个男人的秋装,他要乘温暖的汽车回家。 塞到最后,在道德上完全破坏了。 没有出租车钱,手机的公共交通。 我步行回家十公里。 在家里,您需要帮助您的妻子和孩子,吃饭,将它们放在床上,做一千件事。 但是夜晚来了,分心的事情也结束了,找借口,我感到失望和失眠,一个人呆着-我无所事事,没有任何事情会解决。

在我生命中最糟糕的夜晚,还没有真正升温,我决定最后一次尝试。



我坐下来,决定用F#编写一个小型的数字生物群系,机器学习单元将与之互动,发展,并且我将扭转参数并观察它们如何将这个世界变成现实。

是的,也许然后我开了个小脑子。

通常,我混合使用自顶向下和自底向上的设计方法。 我使用伪代码概括地描述解决方案。 然后,我开始实现最重要的细节,作为独立模块,我则相反。 从细节到一般。

我已经没有伪代码了,我实现了两个三个大模块,看看是否可行。 通常,它不起作用,我开始使用迭代,从头到尾重复此过程直到开始。 但是更常见的是,我只在第五或第六个上抛出迭代。

对于F#,我应用了相同的方法。 总的来说,我对这个项目有一个愿景。 在头上,正在逐步实现。 您考虑了一个接一个的情况,并且在某种程度上您了解了-一切,您已经知道如何编写它。 然后您坐下来编写代码,您知道不可以。 尽管您认为自己似乎在思考,但思想并未转移到YP。 我一直都这样。

但是结果却不同。 我在VSCode中创建了一个txt文件,并为一个描述应用程序生命周期的函数编写了伪代码。 而且我意识到我的伪代码是有效的F#。 无需更改,我只是编写了项目的主要功能。 好的,更改了文件扩展名,将其添加到干净的解决方案中。 这是生命周期函数。 它需要世界的当前状态,对其进行处理的事物(实际上是世界本身)并发出更新后的状态,将状态变成AI的一组参数(反之亦然)的事物,以及AI本身(接收其参数并做出决定)。

然后,一切都很简单。 他们采取一个状态,将其转换为AI参数,输入AI函数,将结果重新转换为状态,然后将其提供给游戏函数,并将结果分配给相同的生命周期函数。 神圣的递归,简单的算法,漂亮的代码,所有GoF均可使用。 仍然需要实现所有这些功能。

但是这里的要点是,我不再需要考虑体系结构。 我写了Sharpe Javists所谓的“控制容器反转”这个很酷的术语,它是一个需要生命周期的函数,并将其放入模块(II,Game)的函数参数中。 VScode用红色下划线,因为其中尚无模块或功能。 但是我得到了最主要的东西-红色底线消失并且可以构建项目之后,解决方案就准备好了。

我只是采用它并一次以相同的方式实现这些模块。 整个项目有五个文件。 AI文件-500行,很多,但是很惯用。 该方法的优点在于,我能够编写一个有效的生命周期函数(应用程序的核心)而无需描述其他任何内容。

整个体系结构是在一分钟内编写的10行代码。 没有接口,抽象工厂,IOC,所有这些DefaultInterfaceNameClass以及我在C#中甚至不需要了解我想做的其他废话。 您只需编写一个愚蠢的代码即可解决该问题,并且比在Java锐器上遭受企业苦难的代码还要好。

我这样做只是通过将思想带入编辑器中,就好像我在F#中思考一样。 在我要用C#在代码注释中编写工作计划的地方,我找出了工作功能。 而不是描述数十个然后数百个接口,而是一个具有应用程序域模型的小文件。 建立它。 有一个可行的解决方案。 一晚。 有了良好的代码,以后就不怕出现在狗身上了。 好简单

早上,我写信给我上班,当时我病了,并投入了一个星期的时间,直到我意识到自己的想法已经实现了很长时间,没有人需要它。 但是我恢复了信心,这就是主要的事情。



我不知道这是怎么回事-F#是最出色的技术,还是太适合我了,或者它是专门为此类任务而创建的-有什么区别? 重要的是那一刻我淹死了,我需要救生圈。 生活让我F#,我下了车。 现在,这不仅对我来说是无精打采的技术,而且还是一个巨大的情感领域。

当有人嘲笑我的时候F#:“斯蒂伯恩技术! 一个书呆子的玩具……”-我立即回想起冬天的黑暗,一辆燃烧的汽车,一支烟冻在我的嘴唇上,沮丧的状态和F#把我拉了出来。 也就是说,他们似乎拉了我最好的朋友。 我的反应很明显-我很生气,很生气。

从外面看起来很奇怪,但是如果您那天住的不是我,您也会做出反应。 我认为所有技术信徒都是如此。 他们爱上了他们的亚皮斯,因为他们相遇的环境对他们个人而言非常严峻。 我来到这里,吐在他们的灵魂里。 好吧,谁是白痴? 我是白痴 希望我不会。

如果有的话,关于这里的 F#。

Source: https://habr.com/ru/post/zh-CN436202/


All Articles