精华内容
下载资源
问答
  • 别在学习框架了,那些让你起飞的计算机基础知识。
    万次阅读 多人点赞
    2019-10-18 09:04:40

    我之前里的文章,写的大部分都是与计算机基础知识相关的,这些基础知识,就像我们的内功,如果在未来想要走的更远,这些内功是必须要修炼的。框架千变万化,而这些通用的底层知识,却是几乎不变的,了解了这些知识,可以帮助我们更快着学习一门知识,更加懂得计算机的运行机制。当然,在面试中也经常会被问到,特别是对于应届生,对于春秋招,也可以看看我前阵子写过的文章历经两个月,我的秋招之路结束了!。也有读者经常问的计算机基础知识究竟是指啥?学习顺序?推荐书籍?

    我公众号的读者学生以及非科班的应该挺多的,所以我今天这篇文章就写一写,我学过的计算机基础知识,看过的书以及我学过的顺序

    当然,以下是我个人的一些经验,并且学过的一些知识,仅供参考,也欢迎大家进行补充

    一、计算机网络

    在我们用的程序中,99% 都离不开网络,作为一个程序员,我觉得了解计算机网络是必须的,在大学的课程中,一般也都会开设这一门课。

    在我学习这门课之前,我就特别好奇,一台电脑是怎么把消息发给另外一台电脑的呢?例如:

    1、两台电脑啥线路也没有相连,怎么就能把消息发送给他呢?

    2、世界上的电脑那么多,咋就能找到那台特点的电脑呢?有人说我们可以 MAC 或者 IP 来唯一标识啊,可是,我就有点疑惑了,世界那么大,电脑那么多,有了这个标识,我们该怎么找到他呢?遍历所有电脑?

    3、多个程序同时发消息给一台电脑,电脑是如何准确把这些消息拿给这些不同程序的呢?

    4、发送的消息丢失了怎么办?

    总之,一大堆疑问,看了计算机网络之后,才豁然开朗。自己也写了一篇评价不错的文章:一文读懂一台计算机是如何把数据发送给另一台计算机的

    所以这里,我是强烈建议大家学一下的,在面试中,计算机网络也是高频考点,这里我大致总结一下一些必学协议以及面试高频考点:

    1、http协议,包括:封装格式,常见响应码,不同版本的区别,常见请求方法,存在哪些安全隐患,啥是无状态协议等。

    2、https协议:http 是明文传输,https 是加密安全的,需要知道 https 是如何加密的、数字证书如何形成,啥的对称加密、非对称加密。

    3、TCP协议:三次握手、四次挥手、如何保证可靠传输、流量控制、拥塞控制。

    4、UDP:这个大致了解即可,好像内容比较少

    5、DNS、ICMP、ARP、DHCP(我就不一个一个写了)

    上面写的这些协议,我觉得是比较重要的,特别是在面试中。我公众号文章也写了好几篇这些协议的,大家可以去计算机基础那个模块找。

    对于新手推荐视频:可以看韩老师讲的视频,在哔哩哔哩搜索韩老师就可以找到 韩老师讲搞笑《计算机网络原理》。

    推荐书籍:《计算机网络:自顶向下》、《图解http》

    我是先看了视频,在看这两本书的(文末我会给出电子版)。

    大家也可以关注我的微信公众号:苦逼的码农,第一时间获取我的文章以及一些资料

    二、操作系统

    操作系统也是一门非常重要的知识,在面试中也是问的非常多(当然,看公司,有些公司技术栈是 Java 的,可能问的比较少)。对于操作系统,要学的也挺多,例如:

    啥是进程,啥是线程,他们的本质区别?我们运行一个程序时,数据放在哪里?代码放在哪里?咋就还要分堆和栈?线程切换时是上下文是啥意思?

    虚拟地址是什么鬼东西?线程需要那么多种状态干啥子?什么是乐观锁、悲观锁?死锁是怎么造成的?解决死锁的策略有哪些?等等

    有人说学操作系统太他妈枯燥了,确实挺枯燥,不过说实话,我还是学的挺有意思的,感觉可以学到很多种策略,一种比一种好,每次看完都是:我去,咋我就想不到呢。我觉得,对于前期,我们需要多参考别人的策略,看多了,有了一定的基础,慢慢形成自己的策略,总之,看这些书,不单要掌握这些知识点,更重要的是一种思维逻辑的提升

    对于操作系统,我总结了下面一些比较核心,面试相对容易被考到的。

    1、进程的通信方式(我写过一篇很不错的文章:记一次面试:进程之间究竟有哪些通信方式? ---- 告别死记硬背

    2、进程、线程究竟是由什么组成的?有哪些数据?

    3、内存管理,包括:虚拟内存(重点)、分页、分段、分页系统地址映射、内存置换算法(重点)。

    4、死锁的处理策略(死锁预防、死锁检测与恢复、死锁避免)

    5、进程调度算法

    6、磁盘寻道算法

    上面说的这些,我认为是比较重要的,如果你没学过,我相信学了之后,你可以学到很多东西,知识点只是其中之一。

    推荐视频:这个我没看过视频,所以想学的,我推荐去中国mooc大学找各大高校的课,也可以去国外找对应的课。

    推荐书籍:我看过的书籍是《操作系统—精髓与设计原理(第八版)》,不过大佬们都推荐《深入理解计算机操作系统(原书第三版)》,我看过目录,感觉还不错,这里也推荐这一本。不过对于零基础的,我建议可以先看一本专门给小白看的书:《程序是如何跑起来的》。

    操作系统的学习,还是挺枯燥的,不过,只有把最难的啃过去,才能变的更加强大

    数据库(这里我用 MySQL)

    在大学的课程里,一般都会开设一门数据库的课程,不过这门数据库是没有针对某一种数据库语言的(例如 MySQL、Oracle)。不过我这里只讲 MySQL的学习,别问为什么,问就是我逃了二十分之十九的课

    把MySQL学好,还是特别重要的,千万不能停留在会用的层面上,而是应该要了解一下原理,特别是对于要面试的同学,会问挺多原理,我每次被问到 MySQL 我都会信心大增,因为我虽然不大好写 SQL,但是,知道挺多原理,记得腾讯、shopee面试时,面完 MySQL,面试官好像对我刮目相看了。好了,不吹了,说这些也是强大 MySQL 的重要性。下面就说我学过的一些知识以及推荐的学习资料吧。

    对于 MySQL,需要学的还挺多的,例如,

    1、一条 sql 语句是如何执行的?进行更新时又是怎么处理的?

    2、索引是如何实现的?多种引擎的实现区别?聚族索引,非聚族索引,二级索引,唯一索引、最左匹配原则等等(非常重要)

    3、事务相关:例如事务的隔离是如何实现的?事务是如何保证原子性?不同的事务看到的数据怎么就不一样了?难道每个事务都拷贝一份视图?MVCC 的实现原理(重要)等等。

    4、各种锁相关,例如表锁,行锁,间隙锁,共享锁,排他锁。这些锁的出现主要是用来解决哪些问题?(重要)

    5、日志相关:redolog,binlog,undolog,这些日志的实现原理,为了解决怎么问题?日志也是非常重要的吧,面试也问的挺多。

    6、数据库的主从备份、如何保证数据不丢失、如何保证高可用等等。

    还有一些常用命令也要知道。

    我觉得,只要你了解了以上的原理,那么对数据库调优的帮助是非常大的,上面除了第六点,其他五点,在应届生的面试中,极其高频。

    推荐书籍:连 sql 都不会写的,推荐《SQL必知必会》,接着推荐《MySQL技术内幕:InnoDB存储引擎》。

    这里我必须推荐下极客时间的一个专栏:《MySQL实战45讲》,讲的非常好,看完应付面试,我觉得够了,我每次面试 MySQL 几乎都加分,离不开这个专栏。如何你想要购买,可以在我的公众号回复**『数据库』**,我会给你发对应的购买链接(注意,这个可不是广告哈,大家买不买看自己)

    文章首发公众号『苦逼的码农』,更多原创,可搜索关注

    四、数据结构与算法

    数据结构与算法,我就不想多说了,看我文章的都知道,我写的文章 80% 是数据结构与算法相关的,重要性不用说。我秋招最大的优势估计就是数据结构与算法的掌握了。上面三门课程的学习,基本也都是离不开数据结构的,对于如何学习数据结构与算法,我觉得可以在写一篇文章了,所以数据结构与算法的学习,我这里不写了,可以关注我的文章,我明天会写一篇与算法相关的。

    论面试,我觉得 操作系统+计算机网络+数据库 + 算法 这三个是问的最多的,所以我写的比较详细,对于学习计算机基础,不为了面试的话,我觉得下面的也及其重要。我分出来说,是为了那些要急着面试的人,可以重点学习下上面这四个。我的公众号『苦逼的码农』也会经常写这些知识的文章

    五、汇编

    我觉得,如何有时间,学习下汇编是必须的,学习了汇编,能够更好着帮助我们知道计算机是如何处理程序代码的,例如寄存器和内存是如何使用的?循环、函数调用、数组是如何实现的?地址是怎么一回事?等等。

    很多二进制代码是可以反编译成汇编的,如何你会汇编,那么可以帮助我们更好着去理解一些东西。所以这里建议大家学习下汇编,并且要动手写一些程序。

    对于汇编的资料,我可能没啥好推荐的,自己看的不多。看过两本书,对于入门的,我建议看 王爽的那本书《汇编语言(第三版)》,不过这本只适合入门,如果想继续,可以看《汇编程序设计》。

    编译原理

    说实话,编译原理还挺难,反正我觉得很难,不过有时间我觉得可以学学,学了这个你可以知道我们的编译器如何分析我们的代码的,例如词法分析,语法分析,语义分析等等。当然,你未来可能会自己写个特定分析代码的编译器也不一定,这个时候,就更加需要学了。

    对于学习的资料,我觉得可以看视频 + 书。视频的话中国 mooc 大学搜索即可,书的话,说时候,我也看的不多,只看过学校指定的教材,所以这里给不了多少建议,自己当当自行搜索,哪本热门卖哪本勒。

    总结

    暂时先介绍这么多吧,说实话,学了这些,不单单是多学了一门知识,更重要的是可以提升你的罗辑思维,给你带来更多的 idea。在之后我的公众号里,我也是主要写计算机基础 + 算法。而这些,是值得每一个程序员去学习的,无论你是什么岗位。而且知识知识学了之后,你去学习其他知识,我相信可以上手的更快滴。

    上面涉及到的书籍,我也去给你们搜索来了电子版的,百度云链接很容易失效,如果你想获取这些书籍,也可以关注我的公众号:帅地玩编程,后台回复『计算机基础』即可获取,文章会首发于我的公众号,如果想第一时间看我的文章,也欢迎关注哦。

    兄dei,如果觉得我写的不错,不妨帮个忙

    1、关注我的原创微信公众号「帅地玩编程」,每天准时推送干货技术文章,专注于写算法 + 计算机基础知识(计算机网络+ 操作系统+数据库+Linux),听说关注了的不优秀也会变得优秀哦。

    2、给俺点个赞呗,可以让更多的人看到这篇文章,顺便激励下我,嘻嘻。

    作者简洁

    作者:大家好,我是帅地,从大学、自学一路走来,深知算法计算机基础知识的重要性,所以申请了一个微星公众号『帅地玩编程』,专业于写这些底层知识,提升我们的内功,帅地期待你的关注,和我一起学习。 转载说明:未获得授权,禁止转载

    更多相关内容
  • 世界热力膨胀mod中的机器框架在热力膨胀中是每个机器核心部件。要合成一个机器,必须先合成任何类型的机器框架。合成机器框架(基础)有序合成锡齿轮4x 铁锭4x 玻璃机器框架(硬化)有序合成机器框架(基础)琥珀金...

    我的世界热力膨胀mod中的机器框架在热力膨胀中是每个机器核心部件。要合成一个机器,必须先合成任何类型的机器框架。

    63b54977aa86b45dc14bedecfe869bb1.png

    合成

    cacfb7841f58f4465c9836a6b87356b0.png

    机器框架(基础)

    有序合成

    锡齿轮

    4x 铁锭

    4x 玻璃

    71e657d3be2a088dd3fac93d273b8a8d.png

    机器框架(硬化)

    有序合成

    机器框架(基础)

    琥珀金齿轮

    4x 因瓦合金锭

    12de293408c13e9729fbc4fde0b9d7e6.png

    机器框架(强化)

    有序合成

    机器框架(硬化)

    信素齿轮

    4x 强化玻璃

    fc880a0ebb72d8185850f6a4478987d4.png

    机器框架(谐振)

    有序合成

    机器框架(强化)

    末影齿轮

    4x 银锭

    升级现存的机器也用相同的配方。只要用机器代替相同等级的机器框架就行了。

    等级

    有四种等级的机器框架:每个对应模组等级系统中的一个等级。当用某个等级的机器框架合成一个机器时,这个机器也会是那个等级。

    机器框架和机器每次可以升级到一个更高的等级。为了合成更高级的机器框架,更低等级的框架必须先合成。

    机器的等级决定了一些它的特性:

    可以同时安装多少扩展组件;起初是三个,每升级一次增加一个,直到六个扩展组件

    可以安装某个扩展组件的哪个等级

    可以储存的RF的最大值

    每刻可以接收的RF的最大值

    可以储存在内部流体储罐中流体的多少,如果使用的话

    可以一次导出多少物品,如果安装了集成伺服装置的话

    后面的几个特性主要在安装了加工速度扩展组件时很有用。

    展开全文
  • C++流行的开源框架和库

    千次阅读 2020-03-05 01:39:25
    想很多程序员应该记得 GitHub 上有一个 Awesome - XXX 系列的资源整理。awesome-cpp 就是 fffaraz 发起维护的 C++ 资源列表,内容包括:标准库、Web应用框架、人工智能、数据库、图片处理、机器学习、日志、代码...

    标准库

    C++标准库,包括了STL容器,算法和函数等。

    • C++ Standard Library:是一系列类和函数的集合,使用核心语言编写,也是C++ISO自身标准的一部分。官网
    • Standard Template Library:标准模板库。官网
    • C POSIX library:POSIX系统的C标准库规范。官网
    • ISO C++ Standards Committee:C++标准委员会。官网

    框架

    C++通用框架和库

    • Apache C++ Standard Library:是一系列算法,容器,迭代器和其他基本组件的集合。官网
    • ASL:Adobe源代码库提供了同行的评审和可移植的C++源代码库。官网
    • Boost:大量通用C++库的集合。官网
    • BDE:来自于彭博资讯实验室的开发环境。官网
    • Cinder:提供专业品质创造性编码的开源开发社区。官网
    • Cxxomfort:轻量级的,只包含头文件的库,将C++ 11的一些新特性移植到C++03中。官网
    • Dlib:使用契约式编程和现代C++科技设计的通用的跨平台的C++库。官网
    • EASTL:EA-STL公共部分。官网
    • ffead-cpp:企业应用程序开发框架。官网
    • Folly:由Facebook开发和使用的开源C++库。官网
    • JUCE:包罗万象的C++类库,用于开发跨平台软件。官网
    • libPhenom:用于构建高性能和高度可扩展性系统的事件框架。官网GitHub
    • LibSourcey:用于实时的视频流和高性能网络应用程序的C++11 evented IO。官网
    • LibU:C语言写的多平台工具库。官网
    • Loki:C++库的设计,包括常见的设计模式和习语的实现。官网
    • MiLi:只含头文件的小型C++库。官网
    • openFrameworks:开发C++工具包,用于创意性编码。官网
    • Qt:跨平台的应用程序和用户界面框架。官网
    • Reason:跨平台的框架,使开发者能够更容易地使用Java,.Net和Python,同时也满足了他们对C++性能和优势的需求。官网
    • ROOT:具备所有功能的一系列面向对象的框架,能够非常高效地处理和分析大量的数据,为欧洲原子能研究机构所用。官网
    • STLport:是STL具有代表性的版本。官网
    • STXXL:用于额外的大型数据集的标准模板库。官网
    • Ultimate++:C++跨平台快速应用程序开发框架。官网
    • Windows Template Library:用于开发Windows应用程序和UI组件的C++库。官网
    • Yomm11:C++11的开放multi-methods。官网

    人工智能

    • btsk:游戏行为树启动器工具。官网
    • Evolving Objects:基于模板的,ANSI C++演化计算库,能够帮助你非常快速地编写出自己的随机优化算法。官网
    • Neu:C++11框架,编程语言集,用于创建人工智能应用程序的多用途软件系统。官网

    异步事件循环

    • Boost.Asio:用于网络和底层I/O编程的跨平台的C++库。官网
    • libev:功能齐全,高性能的时间循环,轻微地仿效libevent,但是不再像libevent一样有局限性,也修复了它的一些bug。官网
    • libevent:事件通知库。官网
    • libhv:一个类似libevent、libuv的跨平台事件循环库,提供了更简单的API接口和更丰富的协议。官网
    • libuv:跨平台异步I/O。官网

    音频

    音频,声音,音乐,数字化音乐库

    • FMOD:易于使用的跨平台的音频引擎和音频内容的游戏创作工具。官网
    • Maximilian:C++音频和音乐数字信号处理库。官网
    • OpenAL:开源音频库—跨平台的音频API。官网
    • Opus:一个完全开放的,免版税的,高度通用的音频编解码器。官网
    • Speex:免费编解码器,为Opus所废弃。官网
    • Tonic:C++易用和高效的音频合成。官网
    • Vorbis:Ogg Vorbis是一种完全开放的,非专有的,免版税的通用压缩音频格式。官网

    生态学

    生物信息,基因组学和生物技术

    • libsequence:用于表示和分析群体遗传学数据的C++库。官网
    • SeqAn:专注于生物数据序列分析的算法和数据结构。官网
    • Vcflib:用于解析和处理VCF文件的C++库。官网
    • Wham:直接把联想测试应用到BAM文件的基因结构变异。官网

    压缩

    压缩和归档库

    • bzip2:一个完全免费,免费专利和高质量的数据压缩。官网
    • doboz:能够快速解压缩的压缩库。官网
    • PhysicsFS:对各种归档提供抽象访问的库,主要用于视频游戏,设计灵感部分来自于Quake3的文件子系统。官网
    • KArchive:用于创建,读写和操作文件档案(例如zip和 tar)的库,它通过QIODevice的一系列子类,使用gzip格式,提供了透明的压缩和解压缩的数据。官网
    • LZ4:非常快速的压缩算法。官网
    • LZHAM:无损压缩数据库,压缩比率跟LZMA接近,但是解压缩速度却要快得多。官网
    • LZMA:7z格式默认和通用的压缩方法。官网
    • LZMAT:及其快速的实时无损数据压缩库。官网
    • miniz:单一的C源文件,紧缩/膨胀压缩库,使用zlib兼容API,ZIP归档读写,PNG写方式。官网
    • Minizip:Zlib最新bug修复,支持PKWARE磁盘跨越,AES加密和IO缓冲。官网
    • Snappy:快速压缩和解压缩。官网
    • ZLib:非常紧凑的数据流压缩库。官网
    • ZZIPlib:提供ZIP归档的读权限。官网

    并发性

    并发执行和多线程

    • Boost.Compute:用于OpenCL的C++GPU计算库。官网
    • Bolt:针对GPU进行优化的C++模板库。官网
    • C++React:用于C++11的反应性编程库。官网
    • Intel TBB:Intel线程构件块。官网
    • Libclsph:基于OpenCL的GPU加速SPH流体仿真库。官网
    • OpenCL:并行编程的异构系统的开放标准。官网
    • OpenMP:OpenMP API。官网
    • Thrust:类似于C++标准模板库的并行算法库。官网
    • HPX:用于任何规模的并行和分布式应用程序的通用C++运行时系统。官网
    • VexCL:用于OpenCL/CUDA 的C++向量表达式模板库。官网

    容器

    • C++ B-tree:基于B树数据结构,实现命令内存容器的模板库。官网
    • Hashmaps:C++中开放寻址哈希表算法的实现。官网

    密码学

    • Bcrypt:一个跨平台的文件加密工具,加密文件可以移植到所有可支持的操作系统和处理器中。官网
    • BeeCrypt:。官网
    • Botan:C++加密库。官网
    • Crypto++:一个有关加密方案的免费的C++库。官网
    • GnuPG:OpenPGP标准的完整实现。官网
    • GnuTLS:实现了SSL,TLS和DTLS协议的安全通信库。官网
    • Libgcrypt:官网
    • libmcrypt:官网
    • LibreSSL:免费的SSL/TLS协议,属于2014 OpenSSL的一个分支。官网
    • LibTomCrypt:一个非常全面的,模块化的,可移植的加密工具。官网
    • libsodium:基于NaCI的加密库,固执己见,容易使用。官网
    • Nettle:底层的加密库。官网
    • OpenSSL:一个强大的,商用的,功能齐全的,开放源代码的加密库。官网
    • Tiny AES128 in C:用C实现的一个小巧,可移植的实现了AES128ESB的加密算法。官网
    • GmSSL:支持国密SM2/SM3/SM4算法的OpenSSL分支。官网

    数据库

    数据库,SQL服务器,ODBC驱动程序和工具

    • hiberlite:用于Sqlite3的C++对象关系映射。官网
    • Hiredis:用于Redis数据库的很简单的C客户端库。官网
    • LevelDB:快速键值存储库。官网
    • LMDB:符合数据库四大基本元素的嵌入键值存储。官网
    • MySQL++:封装了MySql的C API的C++ 包装器。官网
    • RocksDB:来自Facebook的嵌入键值的快速存储。官网
    • SQLite:一个完全嵌入式的,功能齐全的关系数据库,只有几百KB,可以正确包含到你的项目中。官网

    调试

    调试库, 内存和资源泄露检测,单元测试

    • Boost.Test:Boost测试库。官网
    • Catch:一个很时尚的,C++原生的框架,只包含头文件,用于单元测试,测试驱动开发和行为驱动开发。官网
    • CppUnit:由JUnit移植过来的C++测试框架。官网
    • CTest:CMake测试驱动程序。官网
    • googletest:谷歌C++测试框架。官网
    • ig-debugheap:用于跟踪内存错误的多平台调试堆。官网
    • libtap:用C语言编写测试。官网
    • MemTrack:—用于C++跟踪内存分配。官网
    • microprofile:跨平台的网络试图分析器。官网
    • minUnit:使用C写的迷你单元测试框架,只使用了两个宏。官网
    • Remotery:用于web视图的单一C文件分析器。官网
    • UnitTest++:轻量级的C++单元测试框架。官网

    游戏引擎

    • Cocos2d-x:一个跨平台框架,用于构建2D游戏,互动图书,演示和其他图形应用程序。官网
    • Grit:社区项目,用于构建一个免费的游戏引擎,实现开放的世界3D游戏。官网
    • Irrlicht:C++语言编写的开源高性能的实时#D引擎。官网
    • Polycode:C++实现的用于创建游戏的开源框架(与Lua绑定)。官网

    图形用户界面

    • CEGUI:很灵活的跨平台GUI库。官网
    • FLTK:快速,轻量级的跨平台的C++GUI工具包。官网
    • GTK+:用于创建图形用户界面的跨平台工具包。官网
    • gtkmm:用于受欢迎的GUI库GTK+的官方C++接口。官网
    • imgui:拥有最小依赖关系的立即模式图形用户界面。官网
    • libRocket:libRocket 是一个C++ HTML/CSS 游戏接口中间件。官网
    • MyGUI:快速,灵活,简单的GUI。官网
    • Ncurses:终端用户界面。官网
    • QCustomPlot:没有更多依赖关系的Qt绘图控件。官网
    • Qwt:用户与技术应用的Qt控件。官网
    • QwtPlot3D:功能丰富的基于Qt/OpenGL的C++编程库,本质上提供了一群3D控件。官网
    • OtterUI:OtterUI 是用于嵌入式系统和互动娱乐软件的用户界面开发解决方案。官网
    • PDCurses:包含源代码和预编译库的公共图形函数库。官网
    • wxWidgets:C++库,允许开发人员使用一个代码库可以为widows, Mac OS X,Linux和其他平台创建应用程序。官网

    图形

    • bgfx:跨平台的渲染库。官网
    • Cairo:支持多种输出设备的2D图形库。官网
    • Horde3D:一个小型的3D渲染和动画引擎。官网
    • magnum:C++11和OpenGL 2D/3D 图形引擎。官网
    • Ogre 3D:用C++编写的一个面向场景,实时,灵活的3D渲染引擎(并非游戏引擎)。官网
    • OpenSceneGraph:具有高性能的开源3D图形工具包。官网
    • Panda3D:用于3D渲染和游戏开发的框架,用Python和C++编写。官网
    • Skia:用于绘制文字,图形和图像的完整的2D图形库。官网
    • urho3d:跨平台的渲染和游戏引擎。官网

    图像处理

    • Boost.GIL:通用图像库。官网
    • CImg:用于图像处理的小型开源C++工具包。官网
    • CxImage:用于加载,保存,显示和转换的图像处理和转换库,可以处理的图片格式包括 BMP, JPEG, GIF, PNG, TIFF, MNG, ICO, PCX, TGA, WMF, WBMP, JBG, J2K。官网
    • FreeImage:开源库,支持现在多媒体应用所需的通用图片格式和其他格式。官网
    • GDCM:Grassroots DICOM 库。官网
    • ITK:跨平台的开源图像分析系统。官网
    • Magick++:ImageMagick程序的C++接口。官网
    • MagickWnd:ImageMagick程序的C++接口。官网
    • OpenCV:开源计算机视觉类库。官网
    • tesseract-ocr:OCR引擎。官网
    • VIGRA:用于图像分析通用C++计算机视觉库。官网
    • VTK:用于3D计算机图形学,图像处理和可视化的开源免费软件系统。官网

    国际化

    • gettext:GNU gettext官网
    • IBM ICU:提供Unicode 和全球化支持的C、C++ 和Java库。官网
    • libiconv:用于不同字符编码之间的编码转换库。官网

    Json

    • frozen:C/C++的Json解析生成器。官网
    • Jansson:进行编解码和处理Json数据的C语言库。官网
    • jbson:C++14中构建和迭代BSON data,和Json 文档的库。官网
    • JeayeSON:非常健全的C++ JSON库,只包含头文件。官网
    • JSON++:C++ JSON 解析器。官网
    • json-parser:用可移植的ANSI C编写的JSON解析器,占用内存非常少。官网
    • json11:一个迷你的C++11 JSON库。官网
    • jute:非常简单的C++ JSON解析器。官网
    • ibjson:C语言中的JSON解析和打印库,很容易和任何模型集成。官网
    • libjson:轻量级的JSON库。官网
    • PicoJSON:C++中JSON解析序列化,只包含头文件。官网
    • qt-json:用于JSON数据和 QVariant层次间的相互解析的简单类。官网
    • QJson:将JSON数据映射到QVariant对象的基于Qt的库。官网
    • RapidJSON:用于C++的快速JSON 解析生成器,包含SAX和DOM两种风格的API。官网
    • YAJL:C语言中快速流JSON解析库。官网
    • json:一个现代 C++ JSON解析库。语法更直观,集成更简单,经过严格测试的同时对内存效率、速度有深入地考虑。官网

    日志

    • Boost.Log:设计非常模块化,并且具有扩展性。官网
    • easyloggingpp:C++日志库,只包含单一的头文件。官网
    • Log4cpp:一系列C++类库,灵活添加日志到文件,系统日志,IDSA和其他地方。官网
    • templog:轻量级C++库,可以添加日志到你的C++应用程序中。官网
    • spdlog:高性能,只包含头文件。官网

    机器学习

    • Caffe:快速的神经网络框架。官网
    • CCV:以C语言为核心的现代计算机视觉库。官网
    • mlpack:可扩展的C++机器学习库。官网
    • OpenCV:开源计算机视觉库。官网
    • Recommender:使用协同过滤进行产品推荐/建议的C语言库。官网
    • SHOGUN:Shogun 机器学习工具。官网
    • sofia-ml:用于机器学习的快速增量算法套件。官网

    数学

    • Armadillo:高质量的C++线性代数库,速度和易用性做到了很好的平衡。语法和MatlAB很相似。官网
    • blaze:高性能的C++数学库,用于密集和稀疏算法。官网
    • ceres-solver:来自谷歌的C++库,用于建模和解决大型复杂非线性最小平方问题。官网
    • CGal:高效,可靠的集合算法集合。官网
    • cml:用于游戏和图形的免费C++数学库。官网
    • Eigen:高级C++模板头文件库,包括线性代数,矩阵,向量操作,数值解决和其他相关的算法。官网
    • GMTL:数学图形模板库是一组广泛实现基本图形的工具。官网
    • GMP:用于个高精度计算的C/C++库,处理有符号整数,有理数和浮点数。官网

    多媒体

    • GStreamer:构建媒体处理组件图形的库。官网
    • LIVE555 Streaming Media:使用开放标准协议(RTP/RTCP, RTSP, SIP) 的多媒体流库。官网
    • libVLC:libVLC (VLC SDK)媒体框架。官网
    • QtAv:基于Qt和FFmpeg的多媒体播放框架,能够帮助你轻而易举地编写出一个播放器。官网
    • SDL:简单直控媒体层。官网
    • SFML:快速,简单的多媒体库。官网

    网络

    • ACE:C++面向对象网络编程工具包。官网
    • Boost.Asio:用于网络和底层I/O编程的跨平台的C++库。官网
    • Casablanca:C++ REST SDK。官网
    • cpp-netlib:高级网络编程的开源库集合。官网
    • Dyad.c:C语言的异步网络。官网
    • libcurl:多协议文件传输库。官网
    • Mongoose:非常轻量级的网络服务器。官网
    • Muduo:用于Linux多线程服务器的C++非阻塞网络库。官网
    • net_skeleton:C/C++的TCP 客户端/服务器库。官网
    • nope.c:基于C语言的超轻型软件平台,用于可扩展的服务器端和网络应用。 对于C编程人员,可以考虑node.js。官网
    • Onion:C语言HTTP服务器库,其设计为轻量级,易使用。官网
    • POCO:用于构建网络和基于互联网应用程序的C++类库,可以运行在桌面,服务器,移动和嵌入式系统。官网
    • RakNet:为游戏开发人员提供的跨平台的开源C++网络引擎。官网
    • Tuf o:用于Qt之上的C++构建的异步Web框架。官网
    • WebSocket++:基于C++/Boost Aiso的websocket 客户端/服务器库。官网
    • ZeroMQ:高速,模块化的异步通信库。官网

    物理学

    粒子物理

    • Geant4: 粒子探测器模拟引擎。官网

    动力学仿真引擎

    • Box2D:2D的游戏物理引擎。官网
    • Bullet:3D的游戏物理引擎。官网
    • Chipmunk:快速,轻量级的2D游戏物理库。官网
    • LiquidFun:2D的游戏物理引擎。官网
    • ODE:开放动力学引擎-开源,高性能库,模拟刚体动力学。官网
    • ofxBox2d:Box2D开源框架包装器。官网
    • Simbody:高性能C++多体动力学/物理库,模拟关节生物力学和机械系统,像车辆,机器人和人体骨骼。官网

    机器人学

    • MOOS-IvP:一组开源C++模块,提供机器人平台的自主权,尤其是自主的海洋车辆。官网
    • MRPT:移动机器人编程工具包。官网
    • PCL:点云库是一个独立的,大规模的开放项目,用于2D/3D图像和点云处理。官网
    • Robotics Library (RL):一个独立的C++库,包括机器人动力学,运动规划和控制。官网
    • RobWork:一组C++库的集合,用于机器人系统的仿真和控制。官网
    • ROS:机器人操作系统,提供了一些库和工具帮助软件开发人员创建机器人应用程序。官网

    科学计算

    • FFTW:用一维或者多维计算DFT的C语言库。官网
    • GSL:GNU科学库。官网

    脚本

    • ChaiScript:用于C++的易于使用的嵌入式脚本语言。官网
    • Lua:用于配置文件和基本应用程序脚本的小型快速脚本引擎。官网
    • luacxx:用于创建Lua绑定的C++ 11 API。官网
    • SWIG:一个可以让你的C++代码链接到JavaScript、Perl、PHP、Python、Tcl和Ruby的包装器/接口生成器。官网
    • V7:嵌入式的JavaScript 引擎。官网
    • V8:谷歌的快速JavaScript引擎,可以被嵌入到任何C++应用程序中。官网

    序列化

    • Cap’n Proto:快速数据交换格式和RPC系统。官网
    • cereal:C++11 序列化库。官网
    • FlatBuffers:内存高效的序列化库。官网
    • MessagePack:C/C++的高效二进制序列化库,例如 JSON。官网
    • protobuf:协议缓冲,谷歌的数据交换格式。官网
    • protobuf-c:C语言的协议缓冲实现。官网
    • SimpleBinaryEncoding:用于低延迟应用程序的对二进制格式的应用程序信息的编码和解码。官网
    • Thrift:高效的跨语言IPC/RPC,用于C++,Java,Python,PHP,C#和其它多种语言中,最初由Twitter开发。官网

    视频

    • libvpx:VP8/VP9编码解码SDK。官网
    • FFmpeg:一个完整的,跨平台的解决方案,用于记录,转换视频和音频流。官网
    • libde265:开放的h.265视频编解码器的实现。官网
    • OpenH264:开源H.364 编解码器。官网
    • Theora:免费开源的视频压缩格式。官网

    虚拟机

    • CarpVM:C中有趣的VM,让我们一起来看看这个。官网
    • MicroPython:旨在实现单片机上Python3.x的实现。官网
    • TinyVM:用纯粹的ANSI C编写的小型,快速,轻量级的虚拟机。官网

    Web应用框架

    • Civetweb:提供易于使用,强大的,C/C++嵌入式Web服务器,带有可选的CGI,SSL和Lua支持。官网
    • CppCMS:免费高性能的Web开发框架(不是 CMS)。官网
    • Crow:一个C++微型web框架(灵感来自于Python Flask)。官网
    • Kore:使用C语言开发的用于web应用程序的超快速和灵活的web服务器/框架。官网
    • libOnion:轻量级的库,帮助你使用C编程语言创建web服务器。官网
    • QDjango:使用C++编写的,基于Qt库的web框架,试图效仿Django API,因此得此名。官网
    • Wt:开发Web应用的C++库。官网

    XML

    XML就是个垃圾,XML的解析很烦人,对于计算机它也是个灾难。这种糟糕的东西完全没有存在的理由了。-Linus Torvalds

    • Expat:用C语言编写的XML解析库。官网
    • Libxml2:Gnome的XML C解析器和工具包。官网
    • libxml++:C++的XML解析器。官网
    • PugiXML:用于C++的,支持XPath的轻量级,简单快速的XML解析器。官网
    • RapidXml:试图创建最快速的XML解析器,同时保持易用性,可移植性和合理的W3C兼容性。官网
    • TinyXML:简单小型的C++XML解析器,可以很容易地集成到其它项目中。官网
    • TinyXML2:简单快速的C++CML解析器,可以很容易集成到其它项目中。官网
    • TinyXML++:TinyXML的一个全新的接口,使用了C++的许多许多优势,模板,异常和更好的异常处理。官网
    • Xerces-C++:用可移植的C++的子集编写的XML验证解析器。官网

    多项混杂

    一些有用的库或者工具,但是不适合上面的分类,或者还没有分类

    • C++ Format:C++的小型,安全和快速格式化库。官网
    • casacore:从aips++ 派生的一系列C++核心库。官网
    • cxx-prettyprint:用于C++容器的打印库。官网
    • DynaPDF:易于使用的PDF生成库。官网
    • gcc-poison:帮助开发人员禁止应用程序中的不安全的C/C++函数的简单的头文件。官网
    • googlemock:编写和使用C++模拟类的库。官网
    • HTTP Parser:C的http请求/响应解析器。官网
    • libcpuid:用于x86 CPU检测盒特征提取的小型C库。官网
    • libevil:许可证管理器。官网
    • libusb:允许移动访问USB设备的通用USB库。官网
    • PCRE:正则表达式C库,灵感来自于Perl中正则表达式的功能。官网
    • Remote Call Framework:C++的进程间通信框架。官网
    • Scintilla:开源的代码编辑控件。官网
    • Serial Communication Library:C++语言编写的跨平台,串口库。官网
    • SDS:C的简单动态字符串库。官网
    • SLDR:超轻的DNS解析器。官网
    • SLRE:超轻的正则表达式库。官网
    • Stage:移动机器人模拟器。官网
    • VarTypes:C++/Qt4功能丰富,面向对象的管理变量的框架。官网
    • ZBar:‘条形码扫描器’库,可以扫描照片,图片和视频流中的条形码,并返回结果。官网
    • CppVerbalExpressions:易于使用的C++正则表达式。官网
    • QtVerbalExpressions:基于C++ VerbalExpressions 库的Qt库。官网
    • PHP-CPP:使用C++来构建PHP扩展的库。官网
    • Better String:C的另一个字符串库,功能更丰富,但是没有缓冲溢出问题,还包含了一个C++包装器。官网

    软件

    用于创建开发环境的软件

    编译器

    C/C++编译器列表

    • Clang:由苹果公司开发的。官网
    • GCC:GNU编译器集合。官网
    • Intel C++ Compiler:由英特尔公司开发。官网
    • LLVM:模块化和可重用编译器和工具链技术的集合。官网
    • Microsoft Visual C++:MSVC,由微软公司开发。官网
    • Open WatCom:Watcom、C、C++和Fortran交叉编译器和工具。官网
    • TCC:轻量级的C语言编译器。官网

    在线编译器

    在线C/C++编译器列表

    • codepad:在线编译器/解释器,一个简单的协作工具。官网
    • CodeTwist:一个简单的在线编译器/解释器,你可以粘贴的C,C++或者Java代码,在线执行并查看结果。官网
    • coliru:在线编译器/shell, 支持各种C++编译器。官网
    • Compiler Explorer:交互式编译器,可以进行汇编输出。官网
    • CompileOnline:Linux上在线编译和执行C++程序。官网
    • Ideone:一个在线编译器和调试工具,允许你在线编译源代码并执行,支持60多种编程语言。官网
    • C++ Shell:一个非常简单方便,不需要注册的C++在线编译器,可以显示编译信息,允许使用不同的C++标准,不同的优化选项,并支持stdio.官网

    调试器

    C/C++调试器列表

    • Comparison of debuggers:来自维基百科的调试器列表。官网
    • GDB:GNU调试器。官网
    • Valgrind:内存调试,内存泄露检测,性能分析工具。官网

    集成开发环境(IDE)

    C/C++集成开发环境列表

    • AppCode:构建与JetBrains’ IntelliJ IDEA 平台上的用于Objective-C,C,C++,Java和Java开发的集成开发环境。官网
    • CLion:来自JetBrains的跨平台的C/C++的集成开发环境。官网
    • Code::Blocks:免费C,C++和Fortran的集成开发环境。官网
    • CodeLite:另一个跨平台的免费的C/C++集成开发环境。官网
    • Dev-C++:可移植的C/C++/C++11集成开发环境。官网
    • Eclipse CDT:基于Eclipse平台的功能齐全的C和C++集成开发环境。官网
    • Geany:轻量级的快速,跨平台的集成开发环境。官网
    • IBM VisualAge:来自IBM的家庭计算机集成开发环境。官网
    • Irony-mode:由libclang驱动的用于Emacs的C/C++微模式。官网
    • KDevelop:免费开源集成开发环境。官网
    • Microsoft Visual Studio:来自微软的集成开发环境。官网
    • NetBeans:主要用于Java开发的的集成开发环境,也支持其他语言,尤其是PHP,C/C++和HTML5。官网
    • Qt Creator:跨平台的C++,Javascript和QML集成开发环境,也是Qt SDK的一部分。官网
    • rtags:C/C++的客户端服务器索引,用于 跟基于clang的emacs的集成。官网
    • Xcode:由苹果公司开发。官网
    • YouCompleteMe:一个用于Vim的根据你敲的代码快速模糊搜索并进行代码补全的引擎。官网

    构建系统

    • Bear:用于为clang工具生成编译数据库的工具。官网
    • Biicode:基于文件的简单依赖管理器。官网
    • CMake:跨平台的免费开源软件用于管理软件使用独立编译的方法进行构建的过程。官网
    • CPM:基于CMake和Git的C++包管理器。官网
    • FASTBuild:高性能,开源的构建系统,支持高度可扩展性的编译,缓冲和网络分布。官网
    • Ninja:专注于速度的小型构建系统。官网
    • Scons:使用Python scipt 配置的软件构建工具。官网
    • tundra:高性能的代码构建系统,甚至对于非常大型的软件项目,也能提供最好的增量构建次数。官网
    • tup:基于文件的构建系统,用于后台监控变化的文件。官网

    静态代码分析

    提高质量,减少瑕疵的代码分析工具列表

    • Cppcheck:静态C/C++代码分析工具。官网
    • include-what-you-use:使用clang进行代码分析的工具,可以#include在C和C++文件中。官网
    • OCLint:用于C,C++和Objective-C的静态源代码分析工具,用于提高质量,减少瑕疵。官网
    • Clang Static Analyzer:查找C,C++和Objective-C程序bug的源代码分析工具。官网
    • 静态代码分析工具清单(开源篇):来自维基百科的静态代码分析工具列表。官网
    展开全文
  • 几大主流的前端框架(UI/JS)框架

    万次阅读 2020-12-14 11:03:25
    如今的前端已经不再像以前一样就是简单的写写页面和调调样式而已,现在的前端越来越复杂,知识点越来越丰富。...web前端发展至今,演变出了无数的库和框架;说到库第一时间想到的是不是jquery?在小编刚接触库的时候

    如今的前端已经不再像以前一样就是简单的写写页面和调调样式而已,现在的前端越来越复杂,知识点越来越丰富。

    要做WEB前端,就需要知道前端到底是什么,需要学习那些知识;前端至少要懂的三个部分:HTML,CSS,JavaScript(简称JS),那首先先明确这三个概念:

    HTML负责结构,网页想要表达的内容由html书写。

    CSS负责样式,网页的美与丑由它来控制

    JS负责交互,用户和网页产生的互动由它来控制。

    web前端发展至今,演变出了无数的库和框架;说到库第一时间想到的是不是jquery?在小编刚接触库的时候也是从jQuery开始的;今天我们就来说说前端发展到现在都有哪些好用的库框架。

    2016年开始应该是互联网飞速发展的几年,同时也是Web前端开发非常火爆的一年,Web 前端技术发展速度让人感觉几乎不是继承式的迭代,而是一次次的变革和创造。这一年中有很多热门的前端开发框架,下面源码时代web小编为大家总结2016年至今最受欢迎的几款前端框架。

    在这互联网飞速发展的信息时代,技术的更新迭代也在加快。目前看来,火了十几年的Java技术现在仍然是棵常青树。回想两年前初来咋到,也是想好好当一名java程序员,五年计划都行想好了,最后还是阴差阳错搞了前端。前端目前来看还是非常火的,随着IT技术的百花齐放,新的前端框架不断推出,但大多都还在狂吼的阶段。其实一直以来对技术的理解是技术服务于业务和产品,产品又在不同程度的推进着技术的演进。Web、无线、物联网、VR、PC从不同方向推进着技术的融合与微创新。程序员在不同业务场景下的角色互换。而随着Node.js的出现语言的角色也在发生着转变,js扮演了越来越重要的角色。也就有了茶余饭后也把了解到的知识整理一下。

    一、前端UI框架组件库:

    说到前端框架我第一印象中想起React、Vue和Angular,不知道你是否与我一样想到这些,现在常用的有:Bootstrap、jQuery UI、BootMetro、AUI常用的还有很多、就不一一跟大家举例出来了,因为很多朋友认为在不同项目开发中用到的前端框架不一样,其实也有一款可以适用于多种项目开发的前端框架,只是没发现。

    用前端框架开发项目的原因?

    这个应该是最好解决的问题,首先就是减少造轮子的想法,能够快速的开发一款web应用对于公司来说都是非常愿意开到的,在时间和成本之间就能够节约很多的时间,这是其中一点,另外一点就是使用前端框架的组件功能,只要组件功能强大,什么样的项目都能够开发(前提是:要熟悉前端框架的功能!),时间成本问题就能够轻松解决。

    没有设计师也能做出精美页面效果的前端框架

    虽然市场中有很多的前端框架,但部分UI框架是属于组件库,然而QUICK UI跟当下流行的三大底层框架React、Vue和Angular不同,QUICK UI提供了一整套前端解决方案,包括前后端分离的开发框架、100多种功能强大的UI控件、几十套精美的皮肤模板和近16万字的开发文档,满足你所以开发项目都不是问题。

    二、前端框架库:

    1.Node.Js

    地址:http://www.runoob.com/nodejs/nodejs-tutorial.html (中文网)
    描述:Node.js是一个Javascript运行环境(runtime)。实际上它是对Google V8引擎进行了封装。V8引 擎执行Javascript的速度非常快,性能非常好。Node.js对一些特殊用例进行了优化,提供了替代的API,使得V8在非浏览器环境下运行得更好。
      Node.js是一个基于Chrome JavaScript运行时建立的平台, 用于方便地搭建响应速度快、易于扩展的网络应用。Node.js 使用事件驱动, 非阻塞I/O 模型而得以轻量和高效,非常适合在分布式设备上运行数据密集型的实时应用。

    简单的说 node.js 就是运行在服务端的 JavaScript。

    Node.js 是一个基于Chrome javascript 运行时建立的一个平台。

    Node.js是一个事件驱动I/O服务端JavaScript环境,基于Google的V8引擎,V8引擎执行Javascript的速度非常快,性能非常好。

    用途:
      1. RESTful API(目前比较流行的接口开发风格)

    这是NodeJS最理想的应用场景,可以处理数万条连接,本身没有太多的逻辑,只需要请求API,组织数据进行返回即可。它本质上只是从某个数据库中查找一些值并将它们组成一个响应。由于响应是少量文本,入站请求也是少量的文本,因此流量不高,一台机器甚至也可以处理最繁忙的公司的API需求。

    2. 统一Web应用的UI层

    目前MVC的架构,在某种意义上来说,Web开发有两个UI层,一个是在浏览器里面我们最终看到的,另一个在server端,负责生成和拼接页面。

    不讨论这种架构是好是坏,但是有另外一种实践,面向服务的架构,更好的做前后端的依赖分离。如果所有的关键业务逻辑都封装成REST调用,就意味着在上层只需要考虑如何用这些REST接口构建具体的应用。那些后端程序员们根本不操心具体数据是如何从一个页面传递到另一个页面的,他们也不用管用户数据更新是通过Ajax异步获取的还是通过刷新页面。

    3. 大量Ajax请求的应用

    例如个性化应用,每个用户看到的页面都不一样,缓存失效,需要在页面加载的时候发起Ajax请求,NodeJS能响应大量的并发请求。  总而言之,NodeJS适合运用在高并发、I/O密集、少量业务逻辑的场景。

    2.angular.Js(比较厉害,github排名也比较高)

    地址:http://www.runoob.com/angularjs/angularjs-tutorial.html (中文网)
    描述:AngularJS[1] 诞生于2009年,由Misko Hevery 等人创建,后为Google所收购。是一款优秀的前端JS框架,已经被用于Google的多款产品当中。AngularJS有着诸多特性,最为核心的是:MVVM、模块化、自动化双向数据绑定、语义化标签、依赖注入等等。
    用途:通过描述我们应该就能很好的明白AngularJS的真实用途了,MVVM,模块化,自动化双向数据绑定等等。除了简单的dom操作外,更能体现Js编程的强大。当然应用应该视场合而定。
    它的出现比较早,也是曾经比较流行的前端js框架,但是今年来随着reactJS与VueJS的出现,它的热度在慢慢降低。

    3.JQuery Mobile

    地址:http://www.w3school.com.cn/jquerymobile/ (中文网)
    描述:Query Mobile是jQuery 在手机上和平板设备上的版本。jQuery Mobile 不仅会给主流移动平台带来jQuery核心库,而且会发布一个完整统一的jQuery移动UI框架。支持全球主流的移动平台。jQuery Mobile开发团队说:能开发这个项目,我们非常兴奋。移动Web太需要一个跨浏览器的框架,让开发人员开发出真正的移动Web网站。
    用途:jQuery Mobile 是创建移动 web 应用程序的框架。
          jQuery Mobile 适用于所有流行的智能手机和平板电脑。

    jquery Mobile 使用 HTML5 和 CSS3 通过尽可能少的脚本对页面进行布局。

    4.requirejs

    地址:http://www.requirejs.cn/
    描述:RequireJS的目标是鼓励代码的模块化,它使用了不同于传统

    用途:模块化动态加载。

    5.Vue.js(目前市场上的主流)

    地址:http://cn.vuejs.org/
    描述:Vue.js 是用于构建交互式的 Web 界面的库。它提供了 MVVM 数据绑定和一个可组合的组件系统,具有简单、灵活的 API。从技术上讲, Vue.js 集中在 MVVM 模式上的视图模型层,并通过双向数据绑定连接视图和模型。实际的 DOM 操作和输出格式被抽象出来成指令和过滤器。相比其它的 MVVM 框架,Vue.js 更容易上手。
    目前市场上比较流行的前后端分离的开发模式,大多前端都是vueJS做的,具体的优点请大家看官方文档。

    6.backbone.js

    地址:http://www.css88.com/doc/backbone/
    描述:Backbone 为复杂Javascript应用程序提供模型(models)、集合(collections)、视图(views)的结构。其中模型用于绑定键值数据和自定义事件;集合附有可枚举函数的丰富API; 视图可以声明事件处理函数,并通过RESTful JSON接口连接到应用程序。

    7.React.js(gihub排名仅次于vue.js)

    地址:http://reactjs.cn/react/docs/why-react.html
    描述:React 是一个 Facebook 和 Instagram 用来创建用户界面的 JavaScript 库。很多人认为 React 是 MVC 中的 V(视图)。我们创造 React 是为了解决一个问题:构建随着时间数据不断变化的大规模应用程序。为了达到这个目标,React 采用下面两个主要的思想。

    8.Amaze UI

    Amaze UI是轻量级的前端应用框架,是国内比较流行的框架,比较适用于移动端响应式开发框架,可以按照项目要求生成专属的UI框架库进行使用,组件非常丰富,可以构建出漂亮的web页面。

    官网地址:http://amazeui.org/

    三、可视化组件

    1.Echarts

    地址:http://echarts.baidu.com/
    描述:ECharts,一个纯 Javascript 的图表库,可以流畅的运行在 PC 和移动设备上,兼容当前绝大部分浏览器(IE8/9/10/11,Chrome,Firefox,Safari等),底层依赖轻量级的 Canvas 类库ZRender,提供直观,生动,可交互,可高度个性化定制的数据可视化图表。

    2.tableau(收费)

    地址:http://www.yuandingit.com/special/tableau/index.html
    描述:Tableau 是桌面系统中最简单的商业智能工具软件,Tableau 没有强迫用户编写自定义代码,新的控制台也可完全自定义配置。在控制台上,不仅能够监测信息,而且还提供完整的分析能力。Tableau控制台灵活,具有高度的动态性。

    四、前端构建工具

    1.gulp

    地址:

    描述:易于使用
          通过代码优于配置的策略,Gulp 让简单的任务简单,复杂的任务可管理。
          构建快速
          利用 Node.js 流的威力,你可以快速构建项目并减少频繁的 IO 操作。

    插件高质
          Gulp 严格的插件指南确保插件如你期望的那样简洁高质得工作。

    易于学习
          通过最少的 API,掌握 Gulp 毫不费力,构建工作尽在掌握:如同一系列流管道。

    2、ES or webPackage

    1.Bootstrap中文网

    先分享下,如果有想一起学习web前端,HTML5及JavaScript的可以来一下我的前端群733581373,好友都会在里面交流,分享一些学习的方法和需要注意的小细节,每天也会准时的讲一些前端的炫酷特效,及前端直播课程学习
    Bootstrap,让你的页面更简洁、直观、强悍、移动设备优先的前端开发框架,让web开发更迅速、更简单。它还提供了更优雅的HTML和CSS规范,它即是由动态CSS语言Less写成。有着丰富的网格布局系统以及丰富的可重用组件,还有强大的支持十几的JavaScript、jQuery插件以及组件定制等。
    Bootstrap中文网地址:http://www.bootcss.com/

    2. Layui

    layer是一款口碑极佳的web弹层组件,是一款采用自身模块规范编写的前端 UI 框架,遵循原生 HTML/CSS/JS 的书写与组织形式,门槛极低,拿来即用。layui 首个版本发布于2016年秋,她区别于那些基于 MVVM 底层的 UI 框架,从核心代码到 API 的每一处细节都经过精心雕琢,非常适合界面的快速开发。

    Layui官网地址:https://www.layui.com/

    3.ElementUI

    Element-Ul是饿了么前端团队推出的一款基于Vue.js 2.0 的桌面端UI框架,手机端有对应框架是Mint UI 。适合于Vue的UI框架;
    官网地址:http://element-cn.eleme.io/#/zh-CN

    4.Mint UI

    Mint UI 是 由饿了么前端团队推出的 一个基于 Vue.js 的移动端组件库,Mint UI 包含丰富的 CSS 和 JS 组件,能够满足日常的移动端开发需要。通过它,可以快速构建出风格统一的页面,提升开发效率。
    官网地址:http://mint-ui.github.io/

    5.angular

    AngularJS诞生于2009年,由Misko Hevery 等人创建,后为Google所收购。是一款优秀的前端JS框架,已经被用于Google的多款产品当中。AngularJS有着诸多特性,最为核心的是MVW(Model-View-Whatever)、模块化、自动化双向数据绑定、语义化标签、依赖注入等等。
    官网地址:http://www.angularjs.net.cn/

    6.React

    React 可以非常轻松地创建用户交互界面。为你应用的每一个状态设计简洁的视图,在数据改变时 React 也可以高效地更新渲染界面。React 起源于 Facebook 的内部项目,因为该公司对市场上所有 JavaScript MVC 框架,都不满意,就决定自己写一套,用来架设Instagram 的网站。做出来以后,发现这套东西很好用,就在2013年5月开源了。
    官网地址:http://react-china.org/

    7.vue.js

    近几年最火的前端框架当属Vue.js了,Vue.js是一个构建数据驱动的 web 界面的渐进式框架。Vue.js 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件。很多使用过vue的程序员这样评价它,“vue.js兼具angular.js和react.js的优点,并剔除了它们的缺点”。授予了这么高的评价的vue.js,也是开源世界华人的骄傲,因为它的作者是位中国人–尤雨溪
    几款常用的高质量web前端框架
    Web前端框架就是为了节约开发成本和时间,一般开发一个项目都会用到前端框架(除非自己有前端开发团队),根据我经验找的几款web前端框架做出了分析。都是个人意见,仁者见仁智者见智。

    QUICK UI
    QUICK UI是一套完整的企业级web前端开发解决方案,由基础框架、UI组件库、皮肤包、示例工程和文档等组成。使用QUICKUI开发者可以极大地减少工作量,提高开发效率,快速构建功能强大、美观、兼容的web应用系统。
    QUICK UI优势:
    ①功能最为强大
    QUICKUI经历了7年的迭代更新,不断从客户的各种业务中对组件的需求进行归纳和抽离,从而打造新的组件和功能。现在最新的4.0版本框架包含了一百多种组件,一千多个应用场景示例。可以说在前端框架领域中,QUICKUI拥有功能最强大组件库。

    ②运行最为稳定
      很多其他的第三方UI控件在简单场合使用OK,到了复杂的场景中就会出现很多问题,这种现象很常见,因为在组件设计时无法预料到所有的应用场合。而QUICKUI在7年间经历了数千个项目实际检验,在各种复杂场景都应用过,并根据客户的反馈不断完善和调整。目前的第四代可以说是最稳定、最完美的版本。

    ③丰富精美的界面皮肤
      跟其他web前端框架仅仅是一套组件库不同,QUICKUI是一整套前端解决方案,拥有丰富的外观界面解决方案。采用现今流行的扁平化设计理念,推出了包括登录、响应式web、工作桌面、地图类、门户风格、大屏展示风格等等几百套制作精美、用户体验优秀的界面。这些界面是以QUICKUI皮肤包的形式发布,使用和更换都非常方便。

    ④事无巨细的开发文档
    QUICKUI拥有16万字+的开发文档,框架和组件的每一个功能点都有详细的讲解和代码示例,用于开发过程中随时查阅。除了框架机制讲解和组件使用教程,文档还涉及web前端开发的很多知识。仔细阅读并结合框架使用的话,你很快就能成为web开发的高手。

    ⑤上手开发非常容易
    QUICKUI采用组件化思想来构建组件,一个组件就是一两句html的标签,使用起来非常简单。将开发人员从繁琐的JS编码中解脱出来,很大程度减少前台编码的出错率;保留了HTML的布局方式,从而快速进行页面布局。对开发者前台技术要求也非常低,只需要了解html语法和一些简单的JS即可,从而把更多精力放在业务功能的实现上,极大地提高开发效率。

    ⑥浏览器兼容性非常好
    QUICKUI4.0使用了很多HTML5,CSS3技术用于提高表现力和用户体验,这些新的特性在现代浏览器中会有很好的效果。但是,国内依然有大量的用户在使用IE7、IE8等旧时代的浏览器,为照顾这部分用户,框架采用了渐进式思想,确保低版本浏览器也能正常使用。所以,QUICKUI兼容IE7以上所有主流浏览器。

    flex
    Apache基金会今天发布了Flex4.8版本,这是Adobe将Flex捐献给Apache基金会后发布的第一个版本。
      需要注意的是,Flex目前还在孵化阶段,还不是Apache的正式项目,Flex4.8也不是一个正式的Apache版本。
    Apache称,该版本标志着Flex新时代的开始,Flex的未来将由社区来驱动,而不是由一个公司驱动。开发者可以通过贡献代码,来帮助改进Flex,如修复bug、增加功能等。
      从Macromedia卖给Adobe,然后又捐给apache,不知道搞什么名堂。不过还好没有经过大幅重构,否则就真的是悲哀了!

    extjs
    ExtJS是一种主要用于创建前端用户界面,是一个基本与后台技术无关的前端ajax框架。
      功能丰富,无人能出其右。
      无论是界面之美,还是功能之强,ext的表格控件都高居榜首。
      华丽的界面,灵活的功能,还有开发工具都是配套的,但有个最大的问题,用就得花钱!

    easyui
    easyui帮助你构建你的web应用更加容易。
      它是一个基于jquery的插件,开发出来的一套轻量级的ui框架,非常小巧而且功能丰富。
      但是她有一个最大的问题就是代码只能找到以前的开源的版本,到了1.2以后的版本源代码都是经过混淆的,如果遇到问题修改起来会非常麻烦!不过一个比较大的优势是开源免费,并且界面做的还说的过去!

    jQueryUI
    jQueryUI是一套jQuery的页面UI插件,包含很多种常用的页面空间,例如Tabs(如本站首页右上角部分)、拉帘效果(本站首页左上角)、对话框、拖放效果、日期选择、颜色选择、数据排序、窗体大小调整等等非常多的内容。  功能非常全面,界面也挺漂亮的,可以整体使用,也可以分开使用其中的几个模块,免费开源!

    MiniUI
      又一个基于jquery的框架,开发的界面功能都很丰富。
    jQueryMiniUI–快速开发WebUI。
      它能缩短开发时间,减少代码量,使开发者更专注于业务和服务端,轻松实现界面开发,带来绝佳的用户体验。
      使用MiniUI,开发者可以快速创建Ajax无刷新、B/S快速录入数据、CRUD、Master-Detail、菜单工具栏、弹出面板、布局导航、数据验证、分页表格、树、树形表格等典型WEB应用系统界面。
      界面做的挺不错,功能也挺丰富,但是有两个比较大的问题,一个是收费,一个是没有源码,说白了,不开源!基于这个开发如果想对功能做扩展就需要找他们的团队进行升级!

    DWZ
    DWZ富客户端框架(jQueryRIAframework),是中国人自己开发的基于jQuery实现的AjaxRIA开源框架.
      设计目标是简单实用,快速开发,降低ajax开发成本。
      欢迎大家提出建议,我们将在下一版本中进一步调整和完善功能.共同推进国内整体ajax开发水平。
      毕竟是国产的,支持一下,而且源码完全公开,可以选择一下!不过性能怎么样不敢确定!

    YUI
    Yahoo!UILibrary (YUI)是一个开放源代码的JavaScript函数库,为了能建立一个高互动的网页,它采用了AJAX,DHTML和DOM等程式码技术。它也包含了许多CSS资源。使用授权为 BSD许可证,基本上没怎么研究过!YUICompressor倒是挺出名的,这套UI库不知道应用的情况怎么样!

    Sencha
    Sencha是由ExtJS、jQTouch以及Raphael三个项目合并而成的一个新项目。
      大公司的框架,并且是几样库的强强联合,值得推荐!

    OperaMasks-UI
    OperaMasks-UI是OperaMasks团队2011下半年打造的一款轻量级前端JS组件库,旨在提供一款学习曲线低、定制性灵活、样式统一,且多浏览器支持、覆盖企业业务场景的前端JavaScriptUI组件库。目前,该团队已将这一产品以LGPL开源协议开放给社区。

    转载:https://blog.csdn.net/enweitech/article/details/89316979?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522160791478419195283045635%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=160791478419195283045635&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2alltop_click~default-1-89316979.nonecase&utm_term=%E5%89%8D%E7%AB%AF%E6%A1%86%E6%9E%B6&spm=1018.2118.3001.4449

    展开全文
  • LayUI框架

    千次阅读 2021-10-25 19:05:23
    一、引言 1.1 介绍 LayUI 是一款经典模块化前端 UI 框架,我们只需要定义简单的HTML、CSS...Layui - 经典开源模块化前端 UI 框架layui 是一套开源的 Web UI 解决方案,其内部采用的是自身经典的模块化规范,并遵...
  • 谷歌移动UI框架Flutter入门

    千次阅读 2019-07-14 17:27:35
    Flutter是谷歌的移动UI框架,可以快速在iOS和Android上构建高质量的原生用户界面。 Flutter可以与现有的代码一起工作。在全世界,Flutter正在被越来越多的开发者和组织使用,并且Flutter是完全免费、开源的。它也是...
  • 2017世界PHP框架排名TOP3点评

    千次阅读 2018-03-12 15:11:41
    由于某些国情原因,我国国内流行使用的并不是最好用的兵器(比如thinkphp不在推荐),那就带给大家一些好的选择,先带来一个今年新鲜出炉的框架排名(2017.2月,参考google趋势,coderseye.com, 以及bestreviews...
  • 异步Web框架全面比较

    千次阅读 2019-04-11 09:38:39
    Node.js是开发web后端的最佳选择。它用于构建快速,可伸缩的服务器端Web应用程序。...目前最强的web后端框架仍然是Express,但是很担心以后express会变成所谓的“经典的框架‘或者”传统web框架“,因为一旦...
  • 前言 是一名世界老玩家,因为不满网上其他人的插件兼容...本文中所讲的框架为快速开发世界Bukkit服务器的一款框架框架是基于世界bukkit服务器1.13.2-R0.1-SNAPSHOT版本所开发,因为只玩这个版本...
  • 的嵌入式软件开发框架浅见

    万次阅读 2018-06-06 12:28:05
    因主要是从事应用软件开发,现在讲的是嵌入式应用软件框架。一般好的程序框架,不单单只是应用软件的框架,是一个系统的。如linux系统架构,由于本人才疏学浅只能自我编写个应用程序的浅见。 1.需要有分离分层的...
  • 将 package.json 中的 Ionic 版本改为 2.0.0 的时候,就思考一...而今天,随便打开一个技术相关的网站、应用,只需要简单的看几页,就可以看到丰富的前端框架世界 Angular 2、React、Vue.js、Ember.js。当还是一
  • 浅谈五大Python Web框架

    千次阅读 2020-12-03 12:29:39
    说到Web Framework,Ruby的世界Rails一统江湖,而Python则是一个百花齐放的世界,各种micro-framework、framework不可胜数,不完全列表见:虽然另一大脚本语言PHP也有不少框架,但远没有Python这么夸张,也正是因为...
  • Java集合框架源码详解系列(一)

    千次阅读 多人点赞 2021-05-27 13:20:39
    之前写过关于 C++ STL 的四篇文章,现在...不管是C++的STL也好,Java的集合框架也好,这两者其实都是将一些基本的数据结构进行了封装实现,从现在开始博主将带领大家遨游在Java集合框架的源码世界,准备好了吗?Go!!!
  • ​ 移动APP和小程序,是我们每天都要用到的应用程序,但你知道应用程序是怎么开发出来,需要哪些开发框架吗?今天圣普伦和大家分享10个最受开发者喜爱的开发框架。 ​
  • web开发框架_Web开发的十大框架

    千次阅读 2020-07-10 10:34:18
    web开发框架 Web框架旨在帮助开发Web应用程序,包括Web管理,Web资产和Web API。 因此,框架就是可以帮助您更快,更智能地构建应用程序的库! 哪些是Web开发的十大框架? 如今,Web框架的数量已大大增加。 ...
  • 世间有一种软件,名叫“深度学习框架”。 在人工智能的江湖,常听人言:得框架者,得天下。 多年以前,一面画着大G的大旗在高处飘扬,美国谷歌公司的深度学习框架占据大半江山。万万没有想到,一场大风暴来了。 ...
  • 网页布局框架(示例代码)

    千次阅读 2021-06-11 08:01:11
    View deatails>> Heading 你两个都想救,结果却是两个都没有救成,选择生,必有死,选择胜,必有败,这个世界上,胜者生而败者亡,在事实面前,生与死,不过是必然的因果,当今世上7国纷争,生灵涂炭,无论你如何去...
  • ​Vue(框架)介绍​

    千次阅读 2021-10-22 13:34:26
    很多地方都称Vue框架,按的理解其实叫做Vue类库更合适,这边标题遵循传统叫法,称Vue框架,并且在后面补充加了个括号。 介绍Vue之前,必须先介绍Node.js,Vue的源代码是在Node下面编译成通常意义网页的。 一、...
  • c++框架大全

    万次阅读 多人点赞 2019-07-04 22:20:42
    本篇文章主要介绍了"值得推荐的C/C++框架和库 (真的很强大)",主要涉及到方面的内容,对于C/C++教程感兴趣的同学可以参考一下: 得学习的C语言开源项目- 1. Webbench Webbench是一个在Linux下使用的非常简单的网站...
  • 几种典型的软件自动化测试框架

    千次阅读 2020-09-22 15:30:24
    混合测试自动化(Hybrid Test Automation)框架 最普遍的执行框架是上面介绍的所有技术的 有人喜欢创造世界,他们做了开发者;有的人喜欢开发者,他们做了测试员。什么是软件测试?软件测试就是一场本该在用户面前...
  • 如何挑选适合的前端框架

    千次阅读 2019-03-28 12:10:10
    很高兴应CSDN的邀请谈的看法。 RequireJS,前端技术发展分水岭 在五六年前,移动端还没有兴起,我们没有什么选择,就是jQuery。有人会说,jQuery只是类库,不是框架;但那时前端业务还没有像今天这么繁重,...
  • Web前端热门框架大全

    千次阅读 2019-11-15 16:16:32
    ********前端热门JavaScript框架的分析**** 一、 vue介绍 1.官网:https://cn.vuejs.org/ 2.什么是vue.js Vue.js是一套构建用户界面的渐进式框架。与其他重量级框架不同的是,Vue 采用自底向上增量开发的设计。Vue ...
  • 肝!Spring JDBC持久化层框架“全家桶”教程!

    千次阅读 多人点赞 2021-08-12 17:29:28
    二、JdbcTemplate框架搭建 1、导入所需jar包 2、配置JDBC数据源 (1)、直接在中配置数据源 (2)、引入外部配置文件 3、配置JdbcTemplate对象 三、持久化层操作详解 1、增删改操作 2、批量增删改操作 3、...
  • 几种常见的主流框架

    千次阅读 2019-09-21 18:24:32
    5G将会使这个世界发生改变,让这个世界再一次提速。人们的交通可能就是无人驾驶,人与人之间的交流将会更快,你的一段视频可能上传到朋友圈只需要一秒或者更快。互联网这么快,当然也就需要更多懂这方面的人才。前端...
  • 授予了这么高的评价的vue.js,也是开源世界华人的骄傲,因为它的作者是位中国人--尤雨溪 ---------------------  作者:前端入门到精通  来源:CSDN  原文:...
  • Java是世界第一编程语言,这已经达成共识,是毋庸置疑的真理。框架是程序员们必学的知识点,而且是十分重要的应用,Spring、Struts、Hibernate也是经典中的经典,最常用的框架类型。本文小编主要介绍2020年流行的9大...
  • Go游戏框架初探《一》

    千次阅读 2022-02-21 12:38:46
    这才两年的世界里,就发生了如此多的转变。cpp所带来的痛苦,真让人非常印象深刻吗?在快捷开发,简单类型游戏中,比如卡牌类,回合制这种类型游戏,cpp可能确实不占优势。因为累啊!人都想快捷开发,避免更多的问题...
  • UI框架(UGUI)

    千次阅读 2017-03-27 08:41:30
    可以参考的写的Demo和本文章来学习 毕竟有些细节问题在文章中不能一一说到 工具:VS2010、Unity5.2.3f ...要使得框架的可扩展性与自适应性,把各个面板的名字与路径配置到protobuf文件 在VS中...
  • c++常用框架和库

    千次阅读 2018-09-14 10:52:50
    其以高效出名,它可以将IO事件,定时器,和信号统一起来,统一放在事件处理这一套框架下处理。基于Reactor模式,效率较高,并且代码精简(4.15版本8000多行),是学习事件驱动编程的很好的资源。 下载链接:...
  • 我们做项目久了,都会用到很多开源的框架,今天就把所知道的一些好用的框架都汇总整理了一下,因为实在是大多了记不住,所以记下来方便以后使用,过程中参考了很多网上大牛们写的文章,绝无抄袭冒犯之意,就是...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 185,504
精华内容 74,201
关键字:

我的世界联系框架