美文网首页
写程序不要有冗余代码

写程序不要有冗余代码

作者: 无善无恶 | 来源:发表于2018-05-15 12:02 被阅读23次

hi,你在看这篇文章是吧

考你一个问题,下面这两段函数,执行结果一样么?



public static String getKeyHash(final Context context) 

{
        PackageInfo packageInfo = getPackageInfo(context, PackageManager.GET_SIGNATURES);
        if (packageInfo == null)
            return null;

        for (Signature signature : packageInfo.signatures) {
            try {
                MessageDigest md = MessageDigest.getInstance("SHA");
                md.update(signature.toByteArray());
                return Base64.encodeToString(md.digest(), Base64.NO_WRAP);
            } catch (NoSuchAlgorithmException e) {
                Log.w(TAG, "Unable to get MessageDigest. signature=" + signature, e);
            }
        }
        return null;
    }
    

    public static String getKeyHash2(final Context context) {
        PackageInfo packageInfo = getPackageInfo(context, PackageManager.GET_SIGNATURES);
        if (packageInfo == null)
            return null;

        for (Signature signature : packageInfo.signatures) {
            try {
                MessageDigest md = MessageDigest.getInstance("SHA");
                md.update(signature.toByteArray());
                Log.w("LogLogLog",  Base64.encodeToString(md.digest(), android.util.Base64.NO_WRAP));
                return Base64.encodeToString(md.digest(), Base64.NO_WRAP);
            } catch (NoSuchAlgorithmException e) {
                Log.w("LogLogLog", "Unable to get MessageDigest. signature=" + signature, e);
            }
        }
        return null;
    }

答案是:这两个函的返回结果不一样,导致我设置KeyHash一直都不对。

原因就是getKeyHash2多了一行log.

md.digest()这个函数多执行了一遍,所以最后就会不一样。

写程序的时候,不要觉得一行log无所谓,要严谨呀。

如果要加log,也应该这么加


String keyHash = Base64.encodeToString(md.digest(),Base64.NO_WRAP)
Log.w("LogLogLog",  keyHash);
return keyHash;

当你对写的代码不是百分之百了解的时候,为了风险可控,就不要随意的添加冗余代码。

但是又有几个人能说自己对自己的代码百分之百了解呢?

相关文章

  • 写程序不要有冗余代码

    hi,你在看这篇文章是吧 考你一个问题,下面这两段函数,执行结果一样么? 答案是:这两个函的返回结果不一样,导致我...

  • 小程序request二次封装

    不管做什么项目,一般会对ajax请求做个二次封装,小程序也不例外。 一来代码的封装增强了代码的复用性,减少了冗余代...

  • Java注释及文档注释

    Java注释有三种方式 代码是写给人看的,写注释是为了能让人快速看懂代码,方便程序员间的交流。代码要有规范,要有良...

  • 系统架构-高可用

    常用的保证系统可用性的策略有冗余备份、失效转移和降级限流。 冗余备份 任何程序、任何数据,都至少要有一个备份,也就...

  • 程序员不写代码写小说

    三十岁的大龄程序员了,在编程的道路上毫无建树。 今天和朋友一起吃饭,突然灵机一动说:“改行吧!不写代码了,写小说吧...

  • 有趣的编程

    编程很有趣,不信你看看一个程序员写代码的故事: 一个程序员刚开始写代码的时候这样写: 这个时候这个程序员很努力,不...

  • Python 实现日历的方法

    Python 实现日历方法 感觉写的很乱,又冗余,应该有简洁的代码实现

  • 网站让更多人看到的办法2

    接着网站让跟多人看到的办法1开始 五,代码优化 1,代码的冗余(减少冗余代码,代码的精简化,模...

  • JinLou-C++day09

    函数 为了减少重复的代码, 避免程序冗余, 增加代码的可读性定义格式 返回值 : 有返回(返回对应的类型, 需要使...

  • Python全栈之路系列之函数

    函数 函数是Python为了代码最大程度的重用和最小化代码冗余而提供的最基本的程序结构。 函数式:将某功能代码封装...

网友评论

      本文标题:写程序不要有冗余代码

      本文链接:https://www.haomeiwen.com/subject/gmuedftx.html