• 之前写了那么多 Haskell 的不好的地方,却没有提到它好的地方,其实我必须承认我从 Haskell 身上学到了非常重要的东西,那就是对于“类型”的思考。虽然 Haskell 的类型系统有过于强烈的约束性,从一种“哲学”的角度(不是数学的角度)来看非常“不自然”,但如果一个程序员从来没学过 Haskell,那么他的脑子里就会缺少一种重要的东西。这种东西很难从除 Haskell,ML,Clean,Coq,Agda 以外的其它语言身上学到。

    Haskell 给我的启发

    一个没有学过 Haskell 的 Scheme 程序员最容易犯的一个错误就是,把除 #f(Scheme 的逻辑“假”) 以外的任

  • 我经常以自己写“非常短小”的代码为豪。有一些人听了之后很赞赏,然后说他也很喜欢写短小的代码,接着就开始说 C 语言其实有很多巧妙的设计,可以让代码变得非常短小。然后我才发现,这些人所谓的“短小”跟我所说的“短小”,完全不是一回事。

    我的程序的“短小”,是建立在语义明确,概念清晰的基础上的。在此基础上,我力求去掉冗余的,绕弯子的,混淆的代码,让程序更加直接,更加高效的表达我心中设想的“模型”。这是一种在概念级别的优化,而程序的短小精悍只是它的一种“表象”。就像是整理一团电线,并不是把它们揉成一团,然后塞进一个盒子里就好。这样的做法只会给你以后的工作带来更大的麻烦,而且还有安全隐患。

    所以,我的这

  • ant design Upload组件的使用总结。

    事先说明:upload 所使用"rc-upload"组件在npm是有单独的包,upload对其进一步封装。"rc-upload"

    有更多的API选择。

    需求

    要求限制上传图片的格式、大小、分辨率。

    简单介绍

    这是一个最简单的upload组件使用

    <Upload action="...">
        上传
    </Upload>

    简单说一下关键几个参数

    参数 作用
    action 上传的服务器地址,使用默认上传行为必填
    beforeUpload 默认上传行为之前的钩子函数,用来限制上传文件
    customR
  • 项目规范


    1

    需要循环的内容必须要经过判断,由外至里的判断防止循环报错。此外不循环的变量也要做无值处理
    

    2

    所有的图片给定父级高宽并设置默认背景站位图,给自身宽百分百。
    

    3

    所有关于后台生成的文字都要做文字溢出处理
    

    4

    在处理state的问题上,用函数改变state。用箭头函数来规避this指向问题。
    
    state = { isOnOver: false };
      onSwitch = () => {
        this.setState(pre => ({ isOnOver: !pre.isOnOver }));
      };
      //pre表示原state

    5

    在flex布局
  • 原因

    tushare库引入时出错。
    报错如下:

    Traceback (most recent call last):
      File "d:\workspace\zhirui\ZTrader\daily_crawler.py", line 4, in <module>
        import tushare as ts
      File "D:\Program Files\Python37\lib\site-packages\tushare\__init__.py", line 129, in <module>
        from tushare.futures.domestic