zoukankan      html  css  js  c++  java
  • 这个四月

    人这一辈子,大部分都在平淡中度过,这些时间,即使记录下来,可能也会沦为流水账。但是也会有那么一些日子,让人痛苦,快乐,难忘,久久地存在你的记忆里,成为你生命中的一部分。过去的四月于我而言,就是这么一段时间。

    我是3月份换工作的,离开自己熟悉的小程序开发,开始接触客户端的开发。本以为会很快上手,确没有想到,自己来到的是一个全新的世界。以海贼王的伟大航路来比喻的话,之前写跑在浏览器中的代码,可以认为是伟大航路的前半段,又叫乐园;后面开始接触客户端,可以当作伟大航路的后半段,又叫新世界。
    uploading-image-909638.png

    这一个月来接触和了解了许多新东西,抛开各种环境,hive,kinaba这些跟我工作关系不大的东西不谈,也不说redmine,git这些工作流,单单谈谈传统web开发和客户端开发的区别

    在伟大航路后半段,称为新世界。伟大航路的地磁、天象、海流、气流都是一片混乱,连确认自己的位置都很困难,更不用说寻找岛屿。以往的航海技术和经验都靠不住,只有记录指针和永久指针是值得信赖的。

    客户端给我的感觉也是这样,我们在平时web开发时,一个chrome devtools包含了诸多功能,无论是html视图,css样式,还是js的断点调试,报错堆栈,请求分析,无不清晰明了,让人可以快速定位到那里除了问题,这正是chrome浏览器和devtools给我们营造的“乐园”。

    接下来我们谈谈新世界--客户端开发,看看我们要掌握什么样的知识,才能不让自己翻船。

    1. 网络协议

    在web开发中,我们可以通过devtools查看http的请求头和请求体,但是在客户端开发中,尤其是main进程,比较难以直观的观察请求。更何况,如果main进程和c++ 的native模块通信,可能不会使用http这样的协议,而是直接借助net模块,基于tcp进行通信。于是,又要看看3次握手了。。如果想直观的看到通信过程,可以用抓包工具,比如wireshark进行抓包。这样,我们从协议上来到新世界http -> tcp

    1. 多进程

    即便是刚接触electron的新手,也会知道electron的两个进程,mainrender进程,于是一个新的名词出现了--ipc。上面已经提到ipc的一种方式,tcp

    1. log

    main进程的log一般是写到文件里面的,这样出错的时候,可以拉下来,看哪里出了问题。如果希望console.log生效,可以设置这个环境变量,

    set ELECTRON_ENABLE_LOGGING=true
    
    
    1. 断点调试

    remote-debugging-port,如文档中所说,我们可以开启远程调试,然后在chrome中调试main进程。它是基于CDP协议的,可以实现断点调试,但是不能查看main进程中的网络请求

    在chrome地址栏打开chrome://inspect,然后点击下图中的 Open dedicated DevTools for Node即可。
    uploading-image-312777.png

    1. 错误捕获

    有时候,我们代码没有执行,log,命令行里面都没报错。那十有八九是出错了,但是没有catch到,在网页里面,我们可以看到类似于下面的报错信息,
    uploading-image-714848.png
    但是在主进程里,你自己没有捕获的话,可能就拿不到这么贴心的报错了
    6. 其他

  • 相关阅读:
    HDU5418.Victor and World(状压DP)
    POJ2686 Traveling by Stagecoach(状压DP)
    POJ3254Corn Fields(状压DP)
    HDU5407.CRB and Candies(数论)
    CodeForces 352D. Jeff and Furik
    CodeForces 352C. Jeff and Rounding(贪心)
    LightOj 1282 Leading and Trailing
    Ural 1057. Amount of Degrees(数位DP)
    HDU 2089 不要62 (数位DP)
    HDU5366 The mook jong (DP)
  • 原文地址:https://www.cnblogs.com/imgss/p/12814110.html
Copyright © 2011-2022 走看看