初探React.js

最近学习了下React,还是挺好玩的。
Data Flow

跟着react-redux-blog这里例子做了下,还是挺麻烦的,绕来绕去把自己都绕晕了。大致总结下,一个react + redux的程序,典型的结构是:

  • components: 纯粹的react组件,只能调用props(取props中的数据,或者是调用props中的函数),不修改state
  • containers: 映射state->props以及dispatch->props,也就是说,给components中的组件提供需要的数据和方法
  • actions: 定义需要用到的各种事件,仅仅只是定义出结构,不会实际调用
  • reducers: 仅仅根据事件和状态来计算出一个新的state

参考教程:

谈变量的作用域

可能是因为我C++出身,习惯性的认为变量都是有全局变量、局部变量和const变量吧,然而接触到一些其他语言之后,发现每种语言都有自己的哲学,果然大千世界,无奇不有。
先说说Javascript吧。

var foo = 'abc';
let bar = 'abc';
const foobar = 'ABC';

letconst是ES6才有的,以前通通都是var,而且这个var还是个全局的....全局的....刚入行写js的时候真的被这坑过的。letconst可能就是比较合适一点了吧,符合大多数程序语言的习惯了。然而你依然可以在ES6中混用var,是不是很蛋疼~~
然后是Scala,我还是比较喜欢它的风格valvar两种方式定义变量,一种不可变,一种可变。当然作用域是正常的啦。
然后是Shell....默认是全局的,如果是局部的加local关键字。等等,怎么和lua这么像~

顺便说一句,I hate javascript!

IDEA的日志着色

之前看同事的IDEA日志是彩色的,不同的级别颜色不一样,很好。不过问了下人家怎么搞出来的,说不知道……一直就是这样了。
于是今天我也找了下,原来是grep console插件的作用。现在IDEA官方还没有支持。不说了,看图:

ss.png

MicroServices实践7:Apache Kafka

在微服务中通过使用Kafka或者MQ之类的来实现消息驱动,或者用来解耦。来学习下Kafka的使用。Kafka需要Zookeeper支持,如果没有安装的话,可以使用自带的Zookeeper,这对于我们测试来说足够了。

tar -xzf kafka_2.11-0.11.0.0.tgz
cd kafka_2.11-0.11.0.0
nohup ./bin/zookeeper-server-start.sh ./config/zookeeper.properties &
nohup ./bin/kafka-server-start.sh ./config/server.properties &
nohup ./bin/kafka-server-start.sh ./config/server-1.properties &
nohup ./bin/kafka-server-start.sh ./config/server-2.properties &

上面启动了一个3个Broker的集群。详细请参考上面的QuickStart。

bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 3 --partitions 1 --topic my-replicated-topic
bin/kafka-topics.sh --describe --zookeeper localhost:2181 --topic my-replicated-topic
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic my-replicated-topic
bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --from-beginning --topic my-replicated-topic

一个荒野求生游戏的设想

近来对荒野求生类的视频很感兴趣,以至于我还建了一个网站野の人(虽然目前什么都没有),然后我其实很早之前就想做一个游戏玩玩,但时间这么过去了,我依然没有什么进展,一方面是因为没时间,一方面是因为根本没想好做什么,再有就是技术上的问题需要一个个去学习。

最近看了很多荒野求生,求生一加一,单挑荒野,Primitive Technology等等视频,很感兴趣,于是我又有了一个游戏的想法:

  • 首先是一个2D游戏,因为2D肯定比3D简单些
  • 游戏可以设定关卡,跟荒野求生一样,每一个地方有不同的地形特点,难度也不同
  • 游戏的角色有:贝爷、德爷、科迪;
  • 角色属性有:技能、体力、速度、力量、抵抗力...
  • 如果体力为0则角色会死亡,体力越小,其他属性都会线性下降
  • 游戏可以通过找寻不同的道具获得水、食物等等...

好了,先就写到这里了,改天继续