Linux_IO模式
关于IO这方面,已经有过多次学习,但是一直不成系统,本文将作一个相对全面的总结。
同步、异步IO, 阻塞和非阻塞IO的区别
select,poll,epoll的原理。
关于IO这方面,已经有过多次学习,但是一直不成系统,本文将作一个相对全面的总结。
同步、异步IO, 阻塞和非阻塞IO的区别
select,poll,epoll的原理。
在后台校验参数是接收参数后的第一步,如果使用@RequestParam接收参数,逐个校验,Controller方法会过长 校验代码页非常冗余而且多个方法都需要校验。
而使用@Validated 进行校验,可以更为快捷的完成参数校验的工作,而且可以将参数校验放置到Bean钟,Ctrl代码简洁优雅,参数校验实现复用
概念:
一个图灵完备系统意味着在这个系统中程序能够找到解决方法(在无限运行时间和内存条件下)。—StackOverFlow
图灵完备性是指在可计算性理论中,编程语言或任意其他的逻辑系统如具有等同于通用图灵机的计算能力。换言之,此系统可与通用图灵机互相模拟。这个词源于引入图灵机概念的数学家艾伦·图灵(Alan Turing)。
虽然图灵机会受到存储能力的物理限制,图灵完全性通常指具有无限存储能力的通用物理机器或编程语言。简单来说,一切可计算的问题都能计算,这样的虚拟机或者编程语言就叫图灵完备的。—维基百科
比特币:
比特币现在不是图灵完备的,因此只能作为数字货币使用,不能直接支持智能合约及更复杂的去中心化应用。
以太坊:
相比与比特币,以太坊属于区块链2.0的范畴,解决了比特币网络的一些问题而进行了重新设计。
在shell脚本的学习编写过程中,受到了沈老师的推荐,把py作为个人的胶水语言,以当前个人的学习方向而言,Java是重点,作为工程开发语言。Golang作为区块链方向首选语言,并且打算阅读ETH和docker源码。
作为服务器脚本编程需要一门解释性语言,shell可以,但是太过于薄弱,干脆直接学了python,写脚本,写爬虫都很方便。而且python作为一门优秀的解释性语言已经有了相当强大完备的社区。
1 | #!/bin/sh #是shell脚本的注释 #!作为开头 专有注释 标识路径后所指定的程序即使解释此脚本文件shell程序 |
1 | cd `dirname $0` |
Linux 的 Shell 种类众多,常见的有:
Bourne Again Shell**(Bash)**是Bourne Shell的后续兼容版本 ,所以,像 #!/bin/sh,它同样也可以改为 #!/bin/bash。
1、作为可执行程序
1 | # 使脚本具有执行权限 |
注意,一定要写成 ./test.sh,而不是 test.sh,运行其它二进制的程序也一样,直接写 test.sh,linux 系统会去 PATH 里寻找有没有叫 test.sh 的,而只有 /bin, /sbin, /usr/bin,/usr/sbin 等在 PATH 里,因此需要告诉系统在当前目录需找对应文件。
2、作为解释器参数
这种运行方式是,直接运行解释器,其参数就是 shell 脚本的文件名,如:
1 | /bin/sh test.sh |
这种方式运行的脚本,不需要在第一行指定解释器信息,写了也没用。
1 | my_name="zibu" #=号两边不能有空格 |
1 | str='this is a string' |
1 | array_name={value0 value1 value2} # shell数组之间使用空格分割 一次性声明数组 |
1 | #!/bin/bash |
什么是优质的代码,如何编写出优质的代码,在Coding的时候要做什么才能让自己的代码更为优雅简洁,本文落足实际,为编写出优秀的业务的代码而服务。
核心:拆分业务逻辑和具体数据
1 | // 同样一段业务代码 如果在需要增加数据的时候,代码就会特别冗杂 |
在实际的多人开发的项目中,表格驱动法可以使得在添加相对应功能的时候,只需要修改数据而非变动逻辑,使得代码的维护性大大增强,风格统一。数据易于变动,逻辑相对而言更为稳定。
在项目中从零构建P2P网络时,遇到了许多问题,如TCP长连接为何断开,Client访问Server 6420端口,为什么实际上建立的端口连接是其他端口,等等问题。
这才发现个人的计网能力非常表面,在应对面试时尚可,一旦到了生产环境中就远远不足了,因此以TCP协议为主,将仔细研读《计算机网络—自顶向下方法》 一书,扩充个人Blog的计网相关知识文章。
Java已经有了非常成熟性能监控工具,然而Go在这一方面还很欠缺,pprof(Program Profile)是Golang自带的性能分析工具。本文记录了这两天使用pprof包遇到的一些问题和经验。
任何一个加密货币不可能在交易速度,安全性,去中心化程度三者都做到完美,都是一定程度上的妥协。——-Vitalik Buterin (以太坊创始人)
进入区块链方向已有两月,在总结加密货币的特点而言,虽有大概的想法,却没有这句话这么精准。
这个世界上的所有加密货币都是如此的,一如比特币的POW公链,彻底的去中心化和安全性,然则TPS有限。而Ripple的TPS虽高,然则基于DPOS的策略,实则有52个中心节点存在,并不完全去中心化。倘若不需要安全性,当然可以有较高的TPS,去中心化。但失去安全性的加密货币还有其价值吗,因此加密货币往往在TPS和中性化之间做出一个妥协。