ARTS Week 4

ARTS Week 4

每周完成一个ARTS:
1.Algorithm:每周至少做一个 leetcode 的算法题
2.Review:阅读并点评至少一篇英文技术文章
3.Tip:学习至少一个技术技巧
4.Share:分享一篇有观点和思考的技术文章


Algorithm

5. 最长回文子串

class Solution {
public:
    string longestPalindrome(string s) {
        if(s.empty())
        {
            return "";
        }
        int size = s.size();
        int start = 0,end = 0;
        for(int i = 0;i<size;i++){
            int len1 = calMaxLength(s,i,i);
        
            int len2 = calMaxLength(s,i,i+1);
            int len = len1>len2?len1:len2;
            cout<<len1<<" "<<len2<<" "<<len<<endl;
            if(len > (end - start)){
                start = i - (len -1)/2;
                end = i + len/2;
            }
        }
        return s.substr(start,end - start +1);
    }
    
    int calMaxLength(string s,int left,int right)
    {
        int size = s.size();
        while(left>=0 && right < size && (s[left] == s[right]))
        {
            left --;
            right++;
        }
        return right - left -1;
    }
    
};

Review

How to avoid these 7 mistakes I made as a Junior Developer

本周Review一篇Medium上一篇关于初级开发者避免犯错的文章。

  • 对于寻找第一份工作,第一份工作是你成长最快的时候,一定不能草率了事。
    • 仔细研究公司背景
    • 咨询在公司工作的员工
  • 在面试中提出正确的问题
  • 不要把自己限制在一条发展路线上
  • 不要在写代码时过于花哨,记住KISS原则。
  • 生活中不只有代码和工作
  • 勇于承认“我不知道”
  • 不要试图把进度推进太快,不会走先别想跑
  • 参与开源社区和平台交流

Tips

注释(代码整洁之道)
  • 不要给不好的名字加注释,一个好的名字比好的注释更重要
  • 不要“拐杖注释”,好代码 > 坏代码 + 好注释
  • 在文件/类级别使用全局注释来解释所有部分如何工作
  • 一定要给常量加注释
  • 团队统一定义标记
    • TODO 待处理的问题
    • FIXME 已知有问题的代码
    • HACK 不得不采用的粗糙的解决方案
  • 在注释中用精心挑选的输入输出例子进行说明
  • 注释应该声明代码的高层次意图,而非明显的细节
  • 公共API需要添加注释,其他代码谨慎使用注释。
  • 典型的烂注释
    • 不恰当的信息
    • 废弃的注释
    • 冗余注释
    • 糟糕的注释
    • 注释掉的代码
  • 唯一真正好的注释是你想办法不去写的注释
    • 不要有循规式注释,比如setter/getter注释
    • 不要添加日志式注释,如修改时间等信息(git可以做的事)
    • 注释一定是表达代码之外的东西,代码可以包含的内容,注释中一定不要出现
    • 如果有必要注释,请注释意图(why),而不要去注释实现(how),大家都会看代码
    • 适当添加警示注释

Share

本周Share一篇曹大的从校园到职场-什么是职场经验


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值