Ninjiacoder Swift Lover, Fullstack Developer

2019 Q3 报告

2019 Q3 报告

工作(实习情况)

整个 Q3 几乎都在依图实习,但是说实话算不上是一段很好的实习体验,首先他 10106,相比去年暑假实习的9116,我感觉更累了一点,可能是因为中间穿插了很多秋招面试和复习。

在这三个月里,自认为的提升:

  • 前端(React):5%
  • 后端(Java + Spring Cloud):20%
  • Docker:80%

说说我这三个月做了什么,我参与的项目是给测试部门内部使用的一个性能测试平台,可以并发的对被测服务发起压力。

我主要的工作是:

  • 参与2.5个版本的前端迭代
  • 后端时序图取点算法和 Web 协议配置的内部接口
  • 所有版本的部署架构,从单机 docker-compose 到双机 k8s 尝试再到双机 Docker Swarm,部署灵活性增加50%左右

总结下来:在前端方面几乎没有提升,只是在做一些复杂的 UI 和逻辑处理;后端方面了解了部分的 Java编程规范,对面向对象和设计模式有了进一步了解;在 Docker 方面应该算是学到最多的,但也仅限于 Dockerfile 和 yml 的编写,突然就想起了去年实习的时候和秋哥说想学 Docker,秋哥说把公司的弄懂就会了,不用刻意去学,还是很中肯的。

Side Projects

番茄计 在实习的第一个月,忘了出于什么原因,每天都会写这个 App,可能只是之前的一个 idea 想着要去实现它,看看收费带来的用户数如何。

这个 App 的初衷是为了统计我做各个项目花了多少时间,来源是图拉鼎的那个自己的项目,后来写着写着变成了一个番茄钟应用,我认为的创新之处在于将它和 Apple 的待办事项结合起来,不用再为我这个单独的 App 去创建 todo(当然也是可以的)

这个 App 我接入了 Fabric,可以实时看到用户数,不过看数据似乎并不怎么样,但我依然会继续 focus 在这个项目上,但不会再仅仅是做需求,我会借此熟悉 UIKit 的一些 API 和深入 iOS 特性。

Vapor 博客 因为 SwiftUI 的推出,又有开发者做了像 SwiftWebUI 这样的第三方库,看到了使用 Swift 完成前后端开发的希望,一开始的尝试是使用 Vapor 提供的基础组件自己写一套后端框架,但是有点难,暂时搁置,选择用 Vapor 搭一套后端框架,前端暂时使用 Vapor 官方推荐的 Leaf 模版,之后等 SwiftUI 成熟一些打算换成 SwiftWebUI 这样的前端选择。

目前实现的功能只有博客的增删改查,不过也尝试了 TDD 的开发方式,写了增删改查的 UT,每次看见 UT 全过还是很兴奋的。

秋招情况

秋招算是比较惨烈了,当然除了AT,我其他投的基本上都是不用996的公司,目前的秋招结果如下

  • 腾讯,被一个不知道什么部门和WXG共发起4轮一面,皆挂
  • 阿里,一面挂
  • 字节,简历挂
  • 美团,三轮技术面一轮HR面,意向书
  • 英语流利说,两轮技术面已过,hr说等hr面
  • airbnb,笔试两道题只a了一道,凉凉
  • 微软,石沉大海
  • xmind,石沉大海
  • ……

为何选择秋招而不转正

本来没打算秋招,依图的部门 leader 也很早就跟我说了转正的事情,但是让我最想继续参加秋招的理由是:WWDC Scholarship,我想如果不参加秋招,这个荣誉之后也很难再用上了吧;另一方面,以前觉得全栈,好厉害啊,但是我似乎对于全栈有一些误解。以前认为全栈可能就是能够独立完成一个前后端的项目,事实上,大错特错了,可能大家看到我什么都会,但是真的只是懂一些皮毛,而这些皮毛又恰好能支撑我做一些项目。经历了这么久全栈实习,发现可能并不适合我,或者说,我并没有到达那个能力。

为何选择 iOS 开发

为什么选择iOS,这是一个很玄学的问题,我是一个果粉,目前基本上所有设备都用苹果的。同时,我更喜欢 Swift 这门语言,说不出道理的喜欢。虽然 iOS 已经没人要了,但我依然热爱。

另一个原因是,想做一个用户体验很好的独立应用,而iOS生态能够很好的支持。

生活

少数派作者 在我写完第一个版本的番茄计后,我写了一篇宣传文稿发布在少数派上,同时又写了一篇效率有关的解决方案文章。因此加入了少数派 Matrix 作者群,成为了一名少数派作者

其他 认识了一个超级可爱的学妹qvq

新年目标完成情况

以上写于首都国际机场

Q4 计划

Q4 应该就是在学校了,这个季度应该主要 focus 在一些基础知识的学习,包括也不仅限于算法,数据结构,操作系统。同时也要开始看一些 Objective-C 的知识和 C++ 的内容。

目前我的个人项目有:

  • 日·期:这个 App 打算用 SwiftUI 和 Combine 进行重构,加入一些新功能,并且引入内购
  • 番茄计:重构!考虑使用 ReSwift 或者 RxSwift 进行重构,同时也规划了几个新功能
  • 博客:前端尝试 SwiftWebIUI,完善 UT,随缘加入一些功能
  • 一些试验性的项目:估计只会考虑写一下 demo

总而言之,不再仅仅做产品,而是借助做产品写代码去理解 API 和底层实现原理,同时巩固一些基础。