编程弯路(1)

beewolf, 27 三月, 2023

在我自学编程生涯的30年里,我走了许多的弯路,尽管现在还是不太会编程,但回想自己走过的弯路,发现其他的程序员们依然要走的,成为一个优秀的程序员,有许多的路是一定要走的。

所以,我想把这条路记录下来,想到哪儿就写到哪儿。每个人对编程的理解不一样,我的弯路别人不一定是弯路,当成趣事来看吧。

20多年前,我编程就好像吃快餐一样,基本上看人家代码这样写的,我就这样去做,不会去理解为什么。所以,最近才理解为什么网络通信的代码要这样去写,这就是序列化和反序列化。

我要与其他的主机通信,微软有一个WCF模型,以前我学习了一下,但应用不多,所以没有深入。最近开始学习rabbitmq,想采用微服务的模式来改造我的软件体系,把大量的功能都抽象成一个一个的微服务,这样我就不用每个程序都要去写基础的东西。(现代的云服务也查不多是这个意思。)

我很怕网络交互的开发,但微服务就是拆分,你就得与网络上的主机打交道,所以怕归怕,你还是得做。于是,我恐惧的字节变换就出现了。

        public static Stream ConvertToStream(string Path)
        {
            if (File.Exists(Path))
            {
                FileStream stream = new FileInfo(Path).OpenRead();
                byte[] buffer = new byte[stream.Length];
                stream.Read(buffer, 0, Convert.ToInt32(stream.Length));
                stream.Flush();
                stream.Close();
                Stream result = new MemoryStream(buffer);
                return result;
            }
            return null;
        }

这个就是我怕的来源:byte[] buffer。

我喜欢C#的字符串,string,我不用去[],我可以操作合并,转换,去空等,我就怕[]数组。还有就是stream流。

原来网络之间的交互只能靠传输字节流来进行,就是byte[],而且你还得注意如果传输久了,说不定网络中断,你可能还得考虑重传,呀呀亚,要考虑的东西太多了,所以以前我就抛弃了这个。

只是,你绕不开的,现代编程离不开网络编程,所以涉及到网络,你就得想到传输stream,想到byte,想到网络的缓冲。

第一个弯路就是,你不要以为你绕开了网络,你跑不掉的,还是踏实地学习网络传输这一块的编程内容吧。