Bowen
Bowen
极简欧洲史读后
访问 [https://bowencodes.com](https://bowencodes.com) 以获得最佳体验 这本书是之前在kindle上买的,最近才把它重新读了一遍,书很短,却以不同的角度把欧洲历史说了六遍。我并非专研历史,更非长于历史,只是想重拾读书这个兴趣,所以,从这一本不算深奥晦涩的书里也只得到了一层浅浅的认识和理解,还望见谅 接下来,我将按时间的顺序从古希腊讲到近代欧洲,讲讲我从这本书看到的: ### 古希腊 希腊——这片靠着爱琴海的地方就是欧洲文明的源头。古希腊并不是一个国家,而是由许多城邦组成,雅典是其中的典范,它更是孕育出了现代民主的雏形 由于当时生产力的落后,雅典并没有专职的士兵。通常,成年男性会进行一段时间的军事训练,但他们更多的时间是在劳作,只有在战争时期才会组成军队御敌,他们是国家抵御外敌的主力,所以,他们有资本要求更多的权利。就这样,现代民主的雏形就在雅典出现了——所有成年男性公民齐聚一堂,共商国是 但要注意,雅典的民主只属于成年男性公民,并且不同于现代的代议式民主,雅典的所有成年男性都有决议的投票权 同时,希腊在哲学、艺术、数学、文学等等方面都有所建树,并留下了令后人惊叹的智慧成果 ### 古罗马 我们一般将古罗马和古希腊时期合并为古典时期。罗马吞并了希腊之后,希腊文化并没有就此泯灭,而是伴随着罗马疆域传播得更广。罗马在战争和治国方面比希腊更加高明,但在其他方面,罗马人也不得不甘拜下风,情愿地去学习效仿希腊 古罗马分为三个阶段。第一阶段执行的是君王统治;第二阶段是共和政体,共和的主体是由贵族组成的元老院,后来逐渐加上了更多有钱人,平民大会对元老院有限制,但也仅仅止于此;第三阶段是共和形式的帝制,虽然是帝制,但帝位的传承并不是世袭,而是由皇帝挑选,再由元老院通过 在宗教方面,基督教最开始不过是罗马众多宗教的一支,但随着时间的推进,君士坦丁大帝成为一名基督徒,公开支持基督教,最后来,基督教成了罗马的国教,并禁止异教,开始大肆摧残破坏异教。教会有自己的法律和税收,教皇和罗马皇帝甚至平起平坐 古罗马(西罗马帝国)最终由日耳曼蛮族覆灭,蛮族是天生的战士,他们善于战斗,却对统治一窍不通。蛮族保留了古希腊和古罗马的智识,也保留了教会,承认他们的地位,让教会协助蛮族统治 ### 中世纪 中世纪起于西罗马帝国的坍塌,终于文艺复兴之前。 在西罗马帝国的废墟上,产生了许多结构原始的国家,国王将土地当作奖赏分配出去,成为了领主的私有财产。 早期,君主们并没有绝对的权力。骑兵是早期作战的主力,领主们有自己的骑士,国王可以在征召他们,但来不来就要看国王的强势与否,他们也可选择躲在坚固的城堡里不听从号令。在国王需要钱,得征税的时候议会也可以蹦出来说几句 到了公元1400年左右,君主在争斗中处于上风,专制开始了。国王有了自己的军队,并随着英国长弓、瑞士长矛的出现,骑兵被克制,步兵重新成为战场的主力,领主的军事优势荡然无存。国王们也找到了赚钱的方法,不再受制于议会,比如,法国开始贩卖官职,西班牙等国家则是发现了新世界,占有了取之不尽的金矿 教会没有伴随古罗马帝国着一起粉碎,而是继续成长,成了中世纪最庞大的国际组织。教会有自己的领土,当然,现在教会也有自己的国家,不过是辉煌时刻的无限缩小版了——梵蒂冈。教会可以号召自己的信徒为自己战争——十字军就是这么来的,狂热的信徒前赴后继。教皇有些时候甚至凌驾于皇帝之上:亨利四世只求教皇见他一面,脱光了身上的王权标志,在城堡外的风雪中等了两三天 ### 近代 ##### 文艺复兴 文艺复兴时期是最早把古希腊和古罗马年代称为古典时代的,古典,意为经典、无法超越的。经过长时间中世界的黑暗时期,学者们向往古典文化,期望能重新恢复这种文化,他们开始不停追寻古典文化的遗迹,并模仿古典文化 #####...
访问 [https://bowencodes.com](https://bowencodes.com) 以获得最佳体验 我们在取值特别是链式取值的时候,常常会遇到`Cannot read property 'xx' of undefined`的错误,如何避免这种情况的发生呢?这里有几种方法以供参考 ### 使用成熟的库方法 这是最简单的一种手段:只用引入 lodash,使用`_.get`方法;或者引入 Ramda,使用`R.path`方法,我们就能规避出现上述错误的风险 尽管这种方法十分奏效且方便,但我还是希望你能看完其他方法 ### 巧用&&和|| 我们知道,在 JavaScript 中,使用&&或者||操作符,最后返回的值不一定是 boolean 类型的,比如下面这个例子: ```js console.log(undefined && "a"); //undefined console.log("a" && "b");...
访问 [https://bowencodes.com](https://bowencodes.com) 以获得最佳体验 之前也手写过简单的 promise,这次则是为了通过官方的 Promise A+测试集,借鉴了一些下载量较多的 promise polyfill,改了几遍,终于是通过了 A+规范的 872 个测试用例 ### 如何测试? 测试库地址在这:[promises-tests](https://github.com/promises-aplus/promises-tests) ,大家在写完自己的 promise 后,不妨也去测试一下,检验自己的 promise 是否符合 Promise A+规范。这个库使用起来很方便,像下面这样就可以了: ```js const tests = require("promises-aplus-tests"); const Promise =...
Add style prop to `LiveAudioVisualizer` component