SF
程序那些事
程序那些事
注册登录
关注博客
注册登录
主页
关于
RSS
dart系列之:和null说再见,null使用最佳实践
flydean
2022-01-17
阅读 2 分钟
3.1k
null可能是大家在编写程序中最为头疼的一个东西,稍不留意的情况下就有可能使用到了这个空字符。所以dart在2.12引入了nll safety,默认情况下强制所有的类型都不为null,只有在你认为它可以为null的时候才可以设置为null。
netty系列之:一口多用,使用同一端口运行不同协议
flydean
2022-01-12
阅读 4 分钟
3.3k
在之前的文章中,我们介绍了在同一个netty程序中支持多个不同的服务,它的逻辑很简单,就是在一个主程序中启动多个子程序,每个子程序通过一个BootStrap来绑定不同的端口,从而达到访问不同端口就访问了不同服务的目的。
dart系列之:手写Library,Library编写最佳实践
flydean
2022-01-10
阅读 2 分钟
2.8k
Library是dart用来组织代码的一种非常有用的方式,通过定义不同的Library,可以将非常有用的dart代码进行封装,从而提供给其他的项目使用。虽然我们可以自由使用import或者export来对library进行导入和导入。但是什么样的用法才是最合适的用法呢? 一起来看看吧。
netty系列之:netty对SOCKS协议的支持
flydean
2022-01-06
阅读 4 分钟
2.3k
SOCKS是一个优秀的网络协议,主要被用来做代理,它的两个主要版本是SOCKS4和SOCKS5,其中SOCKS5提供了对认证的支持。通常来说我们使用SSH工具可以构建简单的SOCKS协议通道,那么对于netty来说,是怎么提供对SOCKS的支持呢?一起来看看吧。
dart系列之:dart代码最佳实践
flydean
2022-01-04
阅读 2 分钟
2k
一般来说,这个世界上有三种命名规则,分别是UpperCamelCase,lowerCamelCase和lowercase_with_underscores.
dart系列之:你的地盘你做主,使用Extension对类进行扩展
flydean
2021-12-31
阅读 2 分钟
2.2k
但是有些时候扩展类并不是特别好用,首先在有些语言中,有些类是禁止被扩展的。即使可以被扩展,但是扩展之后的类是一个新的类,而不是原来的父类,所以在使用的过程中可能会出现一些类型转换的问题。
netty系列之:从零到壹,搭建一个SOCKS代理服务器
flydean
2021-12-29
阅读 6 分钟
3.6k
上一篇文章,我们讲到了netty对SOCKS消息提供了SocksMessage对象的封装,并且区分SOCKS4和SOCKS5,同时提供了连接和响应的各种状态。
dart系列之:dart优秀的秘诀-隔离机制
flydean
2021-12-27
阅读 4 分钟
2.4k
之前介绍了很多dart中的异步编程技巧,不知道大家有没有发现一个问题,如果是在java的异步编程中,肯定会提到锁和并发机制,但是对于dart来说,好像从来没有听到多线程和并发的问题,这是为什么呢?
netty系列之:小白福利!手把手教你做一个简单的代理服务器
flydean
2021-12-24
阅读 4 分钟
2.5k
爱因斯坦说过:所有的伟大,都产生于简单的细节中。netty为我们提供了如此强大的eventloop、channel通过对这些简单东西的有效利用,可以得到非常强大的应用程序,比如今天要讲的代理。
dart系列之:安全看我,dart中的安全特性null safety
flydean
2021-12-22
阅读 2 分钟
2.8k
在Dart 2.12中引入了null safety的新特性,也就是说dart程序中默认类型都是非空的,除非你显示告诉编译器,这个类型可以为空。
JetBrains又出神器啦!Fleet,体验飞一般的感觉
flydean
2021-12-21
阅读 3 分钟
5k
java开发的同学可能对于JetBrains这家公司并不陌生,因为JetBrains号称拥有世界上最好的JAVA开发工具IDEA。确实IDEA非常好用,它满足了一个java开发者所有的梦想。
dart系列之:如丝滑般柔顺,操作文件和目录
flydean
2021-12-20
阅读 3 分钟
4.4k
文件操作是IO中非常常见的一种操作,那么对应dart语言来说,操作文件是不是很简单呢?实际上dart提供了两种读取文件的方式,一种是一次性全部读取,一种是将文件读取为流。
dart系列之:实时通讯,在浏览器中使用WebSockets
flydean
2021-12-17
阅读 3 分钟
2.3k
web客户端和服务器端通信有两种方式,一种是使用HTTP请求,从服务器端请求数据。这种请求的缺点就是只能客户端拉取服务器端的数据,只能进行轮询。
netty系列之:一个价值上亿的网站速度优化方案
flydean
2021-12-16
阅读 5 分钟
2k
其实软件界最赚钱的不是写代码的,写代码的只能叫马龙,高级点的叫做程序员,都是苦力活。那么有没有高大上的职业呢?这个必须有,他们的名字就叫做咨询师。
dart系列之:浏览器中的舞者,用dart发送HTTP请求
flydean
2021-12-15
阅读 4 分钟
1.7k
dart:html包为dart提供了构建浏览器客户端的一些必须的组件,之前我们提到了HTML和DOM的操作,除了这些之外,我们在浏览器端另一个常用的操作就是使用XMLHttpRequest去做异步HTTP资源的请求,也就是AJAX请求。
netty系列之:性能为王!创建多路复用http2服务器
flydean
2021-12-14
阅读 3 分钟
3k
在之前的文章中,我们提到了在netty的客户端通过使用Http2FrameCodec和Http2MultiplexHandler可以支持多路复用,也就是说在一个连接的channel基础上创建多个子channel,通过子channel来处理不同的stream,从而达到多路复用的目的。
网络协议之:基于UDP的高速数据传输协议UDT
flydean
2021-12-13
阅读 3 分钟
3.3k
简单就是美。在网络协议的世界中,TCP和UDP是建立在IP协议基础上的两个非常通用的协议。我们现在经常使用的HTTP协议就是建立在TCP协议的基础上的。相当于TCP的稳定性来说,UDP因为其数据传输的不可靠性,所以用在某些特定的场合,如直播、广播消息、视频音频流处理等不太需要校验数据完整性的场合。
网络协议之:还在用HTTP代理?弱爆了!快试试SOCKS5
flydean
2021-12-10
阅读 2 分钟
4k
存在即是合理,SOCKS5的出现是为了解决SOCKS4中不支持身份认证的大问题而出现的,毕竟大家对网络中的安全越来越重视了。没有认证的网络就好像是生活在摄像头下的人生,毫无隐私可言,实在是太可怕了。
netty系列之:手持framecodec神器,创建多路复用http2客户端
flydean
2021-12-09
阅读 5 分钟
2.6k
在之前的文章中,我们实现了支持http2的netty服务器,并且使用支持http2的浏览器成功的进行访问。虽然浏览器非常通用,但是有时候我们也需要使用特定的netty客户端去和服务器进行通信。
看动画学算法之:二叉搜索树BST
flydean
2021-12-08
阅读 4 分钟
2.3k
比如,对于二叉树中的每个节点,如果左子树节点的元素都小于根节点,而右子树的节点的元素都大于根节点,那么这样的树被叫做二叉搜索树(Binary Search Tree)简称BST。
dart系列之:HTML的专属领域,除了javascript之外,dart也可以
flydean
2021-12-07
阅读 2 分钟
1.8k
虽然dart可以同时用作客户端和服务器端,但是基本上dart还是用做flutter开发的基本语言而使用的。除了andorid和ios之外,web就是最常见和通用的平台了,dart也提供了对HTML的原生支持,这个支持就是dart:html包。
dart系列之:还在为编码解码而烦恼吗?用dart试试
flydean
2021-12-06
阅读 2 分钟
2.5k
在我们日常使用的数据格式中json应该是最为通用的一个。很多时候,我们需要把一个对象转换成为JSON的格式,也可以说需要把对象编码为JSON。
dart系列之:数学什么的就是小意思,看我dart如何玩转它
flydean
2021-12-03
阅读 2 分钟
1.9k
dart也可以进行数学运算,dart为数学爱好者专门创建了一个dart:math包来处理数学方面的各种操作。dart:math包提供了正弦,余弦,最大值,最小值和随机数等操作。
dart系列之:时间你慢点走,我要在dart中抓住你
flydean
2021-12-02
阅读 2 分钟
2.4k
时间和日期是我们经常会在程序中使用到的对象。但是对时间和日期的处理因为有不同时区的原因,所以一直以来都不是很好用。就像在java中,为时间和日期修改和新增了多次API,那么作为新生的语言dart而言,会有什么不一样的地方吗?
URL URI傻傻分不清楚,dart告诉你该怎么用
flydean
2021-12-01
阅读 2 分钟
5.1k
如果我们要访问一个网站,需要知道这个网站的地址,网站的地址一般被称为URL,他的全称是Uniform Resource Locator。那么什么是URI呢?
网络协议之:一定要大写的SOCKS
flydean
2021-11-30
阅读 4 分钟
9.9k
很久很久以前,人们还穿的是草鞋,草鞋虽然穿着舒服,但是不够美观。然后人们就发现,用动物的皮也可以做成鞋,于是出现了皮鞋。但是皮鞋穿着磨脚,于是人们又发明了socks,套在脚上,代替脚跟鞋子接触,既提高了舒适感,也减少了磨损,简直是一举两得的事情,非常完美。
听,是版本在说话
flydean
2021-11-29
阅读 2 分钟
2k
简介不知道大家都是怎么定义软件的版本号的?是老老实实的从1.0版本开始,还是像埃里森那样直接从2.0开始,还是从beta版本0.x开始呢?虽然一眼看过去,我们肯定会希望使用版本号最高的那款软件,因为版本号越高,代表着其迭代越多,功能越稳定。这里不讨论版本高低的好坏,这里要讨论的是如何让版本说话。让版本说话为什...
没有人比我更会使用集合!对, 是dart中的集合
flydean
2021-11-26
阅读 3 分钟
2.2k
简介dart中的集合有三个,分别是list,set和map。dart在dart:core包中提供了对于这三种集合非常有用的方法,一起来看看吧。List的使用首先是list的创建,可以创建空的list或者带值的list: {代码...} 使用List的构造函数来创建: {代码...} 向list中添加元素或者list: {代码...} 删除元素: {代码...} dart提供了list的...
还有这种好事!netty自带http2的编码解码器framecodec
flydean
2021-11-25
阅读 4 分钟
2.4k
netty为我们提供了很多http2的封装,让我们可以轻松的搭建出一个支持http2的服务器。其中唯一需要我们自定义的就是http2 handler。
dart系列之:在dart中使用数字和字符串
flydean
2021-11-24
阅读 3 分钟
2.9k
要想熟悉一种语言,最简单的做法就是熟悉dart提供的各种核心库。dart为我们提供了包括dart:core,dart:async,dart:math,dart:convert,dart:html和dart:io这几种常用的库。
上一页
1
…
More
5
6
7
(current)
8
9
…
More
下一页
上一页
7
(current)
下一页