美文网首页
位操作策略 - 灵活的在项目中游走

位操作策略 - 灵活的在项目中游走

作者: Zszen | 来源:发表于2018-11-14 01:42 被阅读3次

什么是位操作策略?

位操作策略来自电子电路的逻辑运算。最初是通过电子管来实现的,后来延伸到硬件系统和软件环境中。它相当于电子电路的加减乘除。

用微软.net开发的可以不用看,微软有自己一套专门处理这个的类库

按位与,或

原始值 参考值 运算方式 结果 说明
101(二进制) 001 & 与 001 只有同位上都为1才为1,否则为0
101 001 竖线(在这里是制表符) 或 101 两个数字比较时,当前位
101 ~值 010 将当前数值的所有位取反
001 1<<2 100 按位左移,用于将整个数值的二进制编码整体向左移位

记住这些就可以处理策略了

位开关策略

首先设置位开关

const dev1_NONE = 0;
const dev1_enableLog = 1<<0;
const dev1_debugFogOpen = 1<<30;
const dev1_enableMoney = 1<<31;

设置起来非常简单,位开关就是用到了左移这个功能将1移动到指定位置上,一共可以设置32个开关,左移不可以到32,因为一般的程序中枚举或宏定义数值都只保持数字32位(有些语言支持64或者自定义,但如果你对多平台语言都有所接触的话,就把它默认成32位处理就好)

设置策略配置

//debug
const dev1_combin = dev_enableLog | dev_debugFogOpen;
//publish
//const dev1_combin = dev_NONE | dev_enableMoney;

你将会发现,当你切换这两个策略文件的时候,整个项目都随之变化了。这就是位操作策略。如果你用c宏定义,你甚至可以废弃掉无用的代码(宏条件作用在开发周期下,宏条件为假情况下代码不会被编译)

使用策略配置

定义

function DEV1(dev1sth){
  return dev1_combin & dev1sth;
}

使用

if(DEV1(dev1_enableLog)){
  console.log("test xxxx");
}

定义2 取非

function DEV1Not(dev1sth){
  return dev1sth&~ dev1_combin;
}

使用

if(DEV1Not(dev1_enableLog)){
  console.log("test xxxx");
}

为什么使用位操作

因为快。

如果不考虑效率,你完全可以用字符串,或者数组来进行这些操作。

有了这些策略,你就不会因为忘记关闭调试,或忘记开启功能而导致项目陆续因为马虎而埋下的错误。而且有了策略模式,修改起代码,也能更有准对和目的行,你会很快查找到你要修改的部分,也很快的回忆起你修改的内容。它很适合你去交接一个已有的项目,不干扰原项目代码下的继续渗透扩展。

32个开关用完了怎么办???

看到我写的dev1_xxx了吗?你可以多放几种策略,团队开发的时候每个人的策略宏定义商讨互不干扰,不会相互影响到对方。

一些小窍门

在多种语言环境下都有枚举功能,将枚举作为开关更方便管理,这时候DEV1这样的方法函数在输入参数的地方可以规定成只能输入当前枚举值,这样就增强了语法严格性。不用担心多种策略之间相互冲突了。

就写这么多了,慢慢消化吧

相关文章

  • 位操作策略 - 灵活的在项目中游走

    什么是位操作策略? 位操作策略来自电子电路的逻辑运算。最初是通过电子管来实现的,后来延伸到硬件系统和软件环境中。它...

  • 如何在 Scala 中科学地操作 collection(一)集合

    在日常项目开发中,我们几乎都会用到Scala中的集合以及一些集合操作。由于 Scala 中的集合操作灵活多变,对于...

  • 操作策略

    仓位管理 分析当前大环境,结合大盘风险和自己的操作策略来决定自己的仓位 买入策略 题材、主力情况 买在支撑位...

  • 学习笔记——软件项目策略过程思考技巧

    阅读书籍《软件项目管理深度实战》 书中提到软件项目在提出策略过程、明确战略规划过程,可以采取如下这些灵活有效的思考...

  • 如何正确理解,内页权重高于首页?

    在SEO机构中,我们经常会定期培训新人接替SEO新项目,由于操作策略的原因,对于一个新站而言,偶尔会出现内页权重,...

  • 操作策略-控制仓位

    方向不明的时候,控制仓位为主。 反抽减仓汽车产业链。 中期关注消费的饮料制造、零售、新能源以及能源股、煤化工方面。...

  • Java中String对"+"的"重载"

    在Java语言中,操作符重载是不被允许的。尽管操作符重载会提高项目的灵活性,但是会提高项目的复杂性,可读性也大大降...

  • 思维的力量

    产品,项目,软件 会过时,但操作项目的思路和方法,永远不会过时。 只要你真正掌握这些顶级思维和策略!你的思维和策略...

  • 传播行业的终极秘密,你也值得拥有!

    作为一直在传播行业里游走的我,每次在执行项目的时候,总是觉得在策略或者是创意上有欠缺,可是当我想去表达的时候,才发...

  • Android StrictMode Use

    Policy 策略 penalty 惩罚可以在主线程中检测硬盘和网络相关的操作.将硬盘读写操作和网络相关操作挪...

网友评论

      本文标题:位操作策略 - 灵活的在项目中游走

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