这些天,对我之前的中间件项目越发嫌弃了起来,想重新写过可是又一直被安排做其他的事情,只能是吸取经验等以后有机会再写写别的了。今天,就想着看看别人的项目框架来找找感觉,瞄了两眼脸书的Proxygen,谈谈自己的看法。
1 用到了Travis、Dockerfile、Doxygen分别用来帮助持续构建项目,实现容器部署和生产文档。看起来也觉得正规,大公司的技术就是能跟得上时代潮流。
2 毕竟是Facebook的项目,Proxygen自然的牵扯到了自家的基础库(比如folly),还有一大堆依赖,这点稍微不爽。
3 优秀的代码风格。
最后,来看看构建项目的shell脚本。
# Parse args
JOBS=8
USAGE="./deps.sh [-j num_jobs]"
while [ "$1" != "" ]; do
case $1 in
-j | --jobs ) shift
JOBS=$1
;;
* ) echo $USAGE
exit 1
esac
shift
done
表示电脑太渣,跑不了这么多任务。
set -e
start_dir=`pwd`
trap "cd $start_dir" EXIT
set -e告诉bash如果任何语句的执行结果不是true则应该退出,好处是防止错误像滚雪球般变大导致一个致命的错误,这些错误本应该在之前就被处理掉。脚本退出时,也总是返回到初始路径。
# Must execute from the directory containing this script
cd "$(dirname "$0")"
如果不是在当前路径下执行脚本,首先进入脚本所在目录。
# Some extra dependencies for Ubuntu 13.10 and 14.04
sudo apt-get install -yq \
cmake \
g++ \
flex \
bison \
...
安装依赖库,-y表示不交互(non-interactively),-q是Quit的意思。
if ! sudo apt-get install -y libdouble-conversion-dev;
then
if [ ! -e double-conversion ]; then
echo "Fetching double-conversion from git (apt-get failed)"
git clone https://github.com/floitsch/double-conversion.git double-conversion
cd double-conversion
cmake . -DBUILD_SHARED_LIBS=ON
sudo make install
cd ..
fi
fi
apt-get install不成功,我们还可以去github上克隆源码编译安装。
大致就这些,代码倒是没细看,买椟还珠了。
魔都的雾霾太严重,这些天都是重度污染,hold不住。