屁股决定脑袋,思想决定高度

2024-06-23 04:08

本文主要是介绍屁股决定脑袋,思想决定高度,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

转眼不知不觉来到新公司近三个月了,好久没有静下心写博客了

最近看欢乐颂安迪说的有句话很好,每一个管理者并不在乎你因为什么客观原因导致没完成任务,他更在乎交给你什么任务。你完成的结果如何。是啊,我们在职场与其抱怨这个任务是因为什么原因导致流产,不如多想想解决办法。作为员工我们更应该想想对方有什么需求,在实际工作中多从这些方面思考问题。

  • 1欢乐颂安迪的话引起设计模式的思考

    • 1.1单一职责原则

    • 1.2开闭原则

    • 1.3里矢替换原则
  • 2https的前世今生
    • 2.1为什么要有https
    • 2.2几种加密方式的优缺点
    • 2.3没有最好的解决方案,都是妥协的产物
  • 3感悟
1欢乐颂安迪的话引起设计模式的思考

        安迪说:“每一个管理者并不在乎你因为什么客观原因导致没完成任务,他更在乎交给你什么任务。你完成的结果如何”,是的,试想让你做一名企业的leader,项目经理,在每天众多繁杂的事情中,出于对上层的交代,每个人都希望招一个有能力的下属帮他完成工作而不是整天跟他汇报“xxx问题导致”,“xxx请假拖延进度”。他更在乎你处理问题的结果是什么。
同理,在我们软件开发中,当我们在一家几个人,十几人的公司里出于节省人力成本考虑,一个leader可能会做接口文档数据,数据库建表,甚至前台,后台部门业务逻辑开发,尽管你是个经验丰富的技术专家,情商沟通能力超群,但是随着企业的扩大一个人能力精力都是有限的,因此他得学会分配任务,把自己的类中的不同功能抽出去,一方面减轻了自己的压力,另一方面每个人都能各尽其能,灵活性,拓展性提高了,这就是下面要说的单一职责原则

1.1单一职责原则

     简单的来说单一职责的关键在于单一二字,至于如何做到单一,这得根据具体的业务和功能来拆分,不同的功能封装到不同的类中,这样提高了代码的复用性,灵活性。正如一个leader如何去拆分自己的功能模块划分给手下去做,这也是资源合理安排的良性循环,分不好,自己累,手下没活干,资源没有最大程度被开发。分的好,自己轻松,下属也能为公司创造更多的价值也得到锻炼,这个没什么好说的,主要是为了引入下面要讲的内容。

1.2开闭原则

     开闭原则简称OCP原则,它能够很好的为我们的软件开发建立一个稳定的,灵活的系统。为什么这么说,开闭原则的核心定义就是对于扩展是开放的,但对于修改却是封闭的(如果理解起来有点晦涩,待会我们上代码理解),在软件的开发周期中,我们的产品需求不可能在当初设计的一成不变,随着版本的更新,迭代,升级,以及维护等对原有的代码进行修改时,我们可能会将错误的代码引入原有的系统中,破坏原来已经测试成熟的系统,譬如,现在我们对标题栏自定义的view,后来有一点,我觉得toolbar不错,想换个试试,又或者今天我是用Glide加载图片,后来我发现一个更好的加载图片框架,想换个试试,这时候软件需求发生变化了,我们应该尽量的通告扩展的方式来实现变化,而不是整个项目的找代码替换。这就需要引入一个很重要的原则,开闭原则。

少废话,上代码。
好,下面我们看看曾经刚开始我在项目中对标题栏实现,在每一个layout中都include一个头布局。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:l

这篇关于屁股决定脑袋,思想决定高度的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1086188

相关文章

hdu1496(用hash思想统计数目)

作为一个刚学hash的孩子,感觉这道题目很不错,灵活的运用的数组的下标。 解题步骤:如果用常规方法解,那么时间复杂度为O(n^4),肯定会超时,然后参考了网上的解题方法,将等式分成两个部分,a*x1^2+b*x2^2和c*x3^2+d*x4^2, 各自作为数组的下标,如果两部分相加为0,则满足等式; 代码如下: #include<iostream>#include<algorithm

函数式编程思想

我们经常会用到各种各样的编程思想,例如面向过程、面向对象。不过笔者在该博客简单介绍一下函数式编程思想. 如果对函数式编程思想进行概括,就是f(x) = na(x) , y=uf(x)…至于其他的编程思想,可能是y=a(x)+b(x)+c(x)…,也有可能是y=f(x)=f(x)/a + f(x)/b+f(x)/c… 面向过程的指令式编程 面向过程,简单理解就是y=a(x)+b(x)+c(x)

Weex入门教程之4,获取当前全局环境变量和配置信息(屏幕高度、宽度等)

$getConfig() 获取当前全局环境变量和配置信息。 Returns: config (object): 配置对象;bundleUrl (string): bundle 的 url;debug (boolean): 是否是调试模式;env (object): 环境对象; weexVersion (string): Weex sdk 版本;appName (string): 应用名字;

实例demo理解面向接口思想

浅显的理解面向接口编程 Android开发的语言是java,至少目前是,所以理解面向接口的思想是有必要的。下面通过一个简单的例子来理解。具体的概括我也不知道怎么说。 例子: 现在我们要开发一个应用,模拟移动存储设备的读写,即计算机与U盘、MP3、移动硬盘等设备进行数据交换。已知要实现U盘、MP3播放器、移动硬盘三种移动存储设备,要求计算机能同这三种设备进行数据交换,并且以后可能会有新的第三方的

一个图形引擎的画面风格是由那些因素(技术)决定的?

可能很多人第一直覺會認為shader決定了視覺風格,但我認為可以從多個方面去考慮。 1. 幾何模型 一個畫面由多個成分組成,最基本的應該是其結構,在圖形學中通常稱為幾何模型。 一些引擎,如Quake/UE,有比較強的Brush建模功能(或應稱作CSG),製作建築比較方便。而CE則有較強的大型地表、植被、水體等功能,做室外自然環境十分出色。而另一些遊戲類型專用的引擎,例

240907-Gradio插入Mermaid流程图并自适应浏览器高度

A. 最终效果 B. 示例代码 import gradio as grmermaid_code = """<iframe srcdoc='<!DOCTYPE html><html><head><meta charset="utf-8" /><meta name="viewport" content="width=device-width" /><title>My static Spa

【Java编程思想】线程的基本协作机制 与 线程的中断

wait/notify Java在Object类中定义了一些线程协作的基本方法,wait和notify public final void wait() throws InterruptedException;public final native void wait(long timeout) throws InterruptedException; 一个带时间参数,单位是毫秒,表示最

【Java编程的思想】理解synchronized

用法和基本原理 synchronized可以用于修饰类的实例方法、静态方法和代码块 实例方法 在介绍并发基础知识的时候,有一部分是关于竞态条件的,当多个线程访问和操作同一个对象时,由于语句不是原子操作,所以得到了不正确的结果。这个地方就可以用synchronized进行处理 public class Counter {private int count;public synchroni

一个瑞典游戏工作室决定离开索尼,之前和之后都发生了什么?

我们在前两篇中探究了国家政策、硬件基础与黑客文化如何让瑞典成为了游戏热土,而它充满地域特色的开发者社区与教育体系的构建,又是如何聚拢了游戏人才,让体系持续生长扩张。 除了大学、科技园和开发者之家外,我们此行从斯德哥尔摩到舍夫德到马尔默,还采访了三家知名工作室的创始人。它们一家产出如今罕见的双人合作游戏,还有一位特立独行的作者型开发者屡屡占据头条;一家贡献了现象级网红作品,当前在朝“正经向”大

【ShuQiHere】从残差思想到 ResNet:深度学习的突破性创新

【ShuQiHere】引言 在深度学习的迅速发展中,卷积神经网络(CNN)凭借其在计算机视觉领域的出色表现,已经成为一种主流的神经网络架构。然而,随着网络层数的增加,研究人员逐渐发现了一个关键问题:梯度消失 😖 和 梯度爆炸 💥,这使得训练非常深的网络变得极其困难。为了解决这一问题,残差思想 💡 被提出,并在 2015 年由 Kaiming He 等人正式引入 ResNet 中。这一创新不