中级开发工程师

Intermediate Developer

文章配图

【原文摘要】
Published: 2023-08-04
This is a story of an average intermediate Clojure developer.

As an intermediate developer, I prioritize crafting high-quality code, spending time evaluating the pros and cons of solutions—considering readability, maintainability, future adaptability, and subjective aesthetics. I take great care with git history, using interactive rebases, Magit commit chunk selection, and commit editing tools to create a clear, logical narrative for PR reviewers, even adding visuals like diagrams or GIFs to provide necessary context.

I actively learn by studying library code from more experienced developers and public technical resources like RFCs. When working with legacy code, I prioritize understanding its history via git records and existing documentation before making changes, avoiding quick dismissals of established code. I also focus on documenting "the why" behind code through detailed git commits, doc-strings, and precise code comments, as clean code can explain "what" it does, but additional documentation clarifies the reasoning.

I strive to master the full application stack, including front-end, backend, async job schedulers, and workers. I can optimize PostgreSQL queries with EXPLAIN ANALYZE, troubleshoot Jenkins pipeline issues with DevOps tooling, and even dig into ClojureScript compiler code to resolve advanced compilation bugs. I write tests to boost coverage—while not strictly following TDD, pre-written tests provide clear targets, and I use interactive rebases to refine test-related git history, as good tests can act as effective documentation.

Team success is a key focus: I review peers' PRs to understand their work, offer constructive help to unblock them, and avoid nitpicking over superficial style rules, instead prioritizing knowledge sharing. I assist with onboarding new team members, sharing my workflow, REPL tricks, environment-specific Emacs Lisp code, and undocumented institutional knowledge.

【译文摘要】
发布时间:2023-08-04
这是一个普通的中级Clojure开发者的故事。

作为一名中级开发者,我优先打磨高质量代码,会花时间评估各类解决方案的利弊——考量可读性、可维护性、未来适配性以及主观审美。我十分重视git提交历史,会使用交互式变基、Magit提交块选择和提交编辑工具,为代码评审人员打造清晰、有逻辑的提交脉络,甚至还会添加图表或动图这类可视化内容来提供必要的背景信息。

我通过研究资深开发者的库代码以及RFC这类公开技术资源来主动学习。在处理遗留代码时,我会优先通过git记录和现有文档了解它的历史再进行修改,不会轻易否决已成型的代码。我还会通过详尽的git提交信息、文档字符串和精准的代码注释来记录代码背后的“设计初衷”,因为整洁的代码只能说明它“做什么”,额外的文档才能阐明其设计逻辑。

我努力精通整个应用技术栈,包括前端、后端、异步任务调度器和任务执行进程。我可以用EXPLAIN ANALYZE优化PostgreSQL查询,用DevOps工具排查Jenkins流水线问题,甚至深入ClojureScript编译器代码来解决复杂的编译bug。我编写测试来提升测试覆盖率——虽然不会严格遵循测试驱动开发(TDD),但提前写好的测试能提供明确目标,我还会用交互式变基优化与测试相关的git提交历史,因为优质的测试本身就是有效的文档。

团队成功是我的核心关注点:我会评审同事的代码合并请求(PR)来了解他们的工作,提供有建设性的帮助帮他们解决卡点,不会在表面的风格规则上吹毛求疵,而是优先注重知识分享。我会协助新成员融入团队,分享我的工作流程、REPL技巧、特定环境下的Emacs Lisp代码,以及未记录在案的团队内部经验。

【单词表】

  1. intermediate /ˌɪntəˈmiːdiət/ 中级的,中间的
  2. prioritize /praɪˈɒrətaɪz/ 优先处理,把…放在首位
  3. craft /krɑːft/ 精心制作,构思
  4. evaluate /ɪˈvæljueɪt/ 评估,评价
  5. maintainability /meɪntəɪnəˈbɪləti/ 可维护性
  6. adaptability /əˌdæptəˈbɪləti/ 适应性,适配性
  7. subjective /səbˈdʒektɪv/ 主观的
  8. aesthetics /iːsˈθetɪks/ 美学,审美
  9. interactive /ˌɪntərˈæktɪv/ 交互式的
  10. rebase /riːˈbeɪs/ 变基(git操作术语)
  11. narrative /ˈnærətɪv/ 叙述,脉络
  12. context /ˈkɒntekst/ 背景,上下文
  13. legacy /ˈleɡəsi/ 遗留的,传统的
  14. documentation /ˌdɒkjumenˈteɪʃn/ 文档,资料
  15. dismissal /dɪsˈmɪsl/ 否决,摒弃
  16. establish /ɪˈstæblɪʃ/ 建立,使成型
  17. clarify /ˈklærəfaɪ/ 阐明,澄清
  18. strive /straɪv/ 努力,力争
  19. stack /stæk/ (技术)栈
  20. async /ˈeɪsɪŋk/ 异步的(asynchronous缩写)
  21. scheduler /ˈʃedjuːlə(r)/ 调度器
  22. optimize /ˈɒptɪmaɪz/ 优化
  23. troubleshoot /ˈtrʌblʃuːt/ 排查故障,解决问题
  24. pipeline /ˈpaɪplaɪn/ 流水线,管道
  25. compiler /kəmˈpaɪlə(r)/ 编译器
  26. compilation /ˌkɒmpəˈleɪʃn/ 编译
  27. boost /buːst/ 提升,增加
  28. coverage /ˈkʌvərɪdʒ/ 覆盖率(测试术语)
  29. refine /rɪˈfaɪn/ 优化,改进
  30. constructive /kənˈstrʌktɪv/ 建设性的
  31. unblock /ˌʌnˈblɒk/ 解除阻碍,解决卡点
  32. nitpick /ˈnɪtpɪk/ 吹毛求疵,挑剔细节
  33. superficial /ˌsuːpəˈfɪʃl/ 表面的,肤浅的
  34. onboarding /ˈɒnbɔːdɪŋ/ (新员工)入职引导,融入团队
  35. institutional /ˌɪnstɪˈtjuːʃənl/ 机构的,团队内部的

【句子翻译】

  1. This is a story of an average intermediate Clojure developer. 这是一个普通的中级Clojure开发者的故事。
  2. As an intermediate developer, I prioritize crafting high-quality code, spending time evaluating the pros and cons of solutions—considering readability, maintainability, future adaptability, and subjective aesthetics. 作为一名中级开发者,我优先打磨高质量代码,会花时间评估各类解决方案的利弊——考量可读性、可维护性、未来适配性以及主观审美。
  3. I take great care with git history, using interactive rebases, Magit commit chunk selection, and commit editing tools to create a clear, logical narrative for PR reviewers, even adding visuals like diagrams or GIFs to provide necessary context. 我十分重视git提交历史,会使用交互式变基、Magit提交块选择和提交编辑工具,为代码评审人员打造清晰、有逻辑的提交脉络,甚至还会添加图表或动图这类可视化内容来提供必要的背景信息。
  4. I actively learn by studying library code from more experienced developers and public technical resources like RFCs. 我通过研究资深开发者的库代码以及RFC这类公开技术资源来主动学习。
  5. When working with legacy code, I prioritize understanding its history via git records and existing documentation before making changes, avoiding quick dismissals of established code. 在处理遗留代码时,我会优先通过git记录和现有文档了解它的历史再进行修改,不会轻易否决已成型的代码。
  6. I also focus on documenting "the why" behind code through detailed git commits, doc-strings, and precise code comments, as clean code can explain "what" it does, but additional documentation clarifies the reasoning. 我还会通过详尽的git提交信息、文档字符串和精准的代码注释来记录代码背后的“设计初衷”,因为整洁的代码只能说明它“做什么”,额外的文档才能阐明其设计逻辑。
  7. I strive to master the full application stack, including front-end, backend, async job schedulers, and workers. 我努力精通整个应用技术栈,包括前端、后端、异步任务调度器和任务执行进程。
  8. I can optimize PostgreSQL queries with EXPLAIN ANALYZE, troubleshoot Jenkins pipeline issues with DevOps tooling, and even dig into ClojureScript compiler code to resolve advanced compilation bugs. 我可以用EXPLAIN ANALYZE优化PostgreSQL查询,用DevOps工具排查Jenkins流水线问题,甚至深入ClojureScript编译器代码来解决复杂的编译bug。
  9. I write tests to boost coverage—while not strictly following TDD, pre-written tests provide clear targets, and I use interactive rebases to refine test-related git history, as good tests can act as effective documentation. 我编写测试来提升测试覆盖率——虽然不会严格遵循测试驱动开发(TDD),但提前写好的测试能提供明确目标,我还会用交互式变基优化与测试相关的git提交历史,因为优质的测试本身就是有效的文档。
  10. Team success is a key focus: I review peers' PRs to understand their work, offer constructive help to unblock them, and avoid nitpicking over superficial style rules, instead prioritizing knowledge sharing. 团队成功是我的核心关注点:我会评审同事的代码合并请求(PR)来了解他们的工作,提供有建设性的帮助帮他们解决卡点,不会在表面的风格规则上吹毛求疵,而是优先注重知识分享。
  11. I assist with onboarding new team members, sharing my workflow, REPL tricks, environment-specific Emacs Lisp code, and undocumented institutional knowledge. 我会协助新成员融入团队,分享我的工作流程、REPL技巧、特定环境下的Emacs Lisp代码,以及未记录在案的团队内部经验。

文章来源:https://dawranliou.com/blog/intermediate-dev/

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇