从事软件开发多年对于C/C++用的比较多,可以明确说这两种编程语言也是支持跨平台,肯定还是有很多人问什么是真正意义上的跨平台,所谓的跨平台就是同一套代码在不同的操作系统都能直接去运行,这里面涉及到一个很重要的问题...,在java这门编程语言刚开始流行的时候就提到了跨平台的功能,在windows上运行的jar包直接放在linux上也能直接去运行,单纯从C/C++角度出发也是能够实现这种功能的,因为其语法实现是相同的。...,在具体软件的核心架构上代码是一致的,和平台相关的代码还是需要单独去实现,就拿简单的线程的实现,不同的操作系统的接口就存在很大的差异,所以完全意义上的跨平台方面距离高级编程语言还是存在差异。...编译器其实就是一种转化工具,将程序转化成能够运行的二进制文件,一般而言C/C++编译器是可以通用的,不同的操作系统使用不用的编译器底层。 ?...编译器是一种工具包的集合,内部的实现也涉及到C/C++的编程,编译器的通常说的编程代码还是存在一定的差异,编译器是为代码转化做服务的,真正实现跨平台的基础部件编译器算是一种,因为不同的操作系统或者计算机架构需要具体的对应实现
菜鸟:好吧,不过如果把这些工具替换掉,我们就要重新实现业务逻辑了。 老鸟:那是你的问题。 菜鸟:为什么这么说? 老鸟:你认为业务逻辑依赖数据库,但实际上不是这样的。...老鸟:那么你就该知道,消息发送者是不知道消息接收者是什么类型的。 菜鸟:这要看使用的是哪一种语言了。在Java里,发送者最起码要知道接收者的基本类型。...我了解你的意思。不过发送者仍然依赖接收者。 老鸟:在运行时确实是的,但在编译时不是这样的。发送者的代码里并没有引用接收者的代码。实际上,是接收者的代码依赖了发送者的代码。 菜鸟:啊!...不过在业务逻辑里,仍然引用了数据库的工具接口。 老鸟:不,不是这样的。我们并没有打算为业务逻辑提供所有的数据库工具接口,而是业务逻辑创建了它们所需要的接口。在实现这些接口的时候,可以调用相应的工具。...老鸟:当架构师草率地决定使用一个框架,后来却发现框架提供的功能是团队不需要的,反而给团队带来了诸多约束。 老鸟:当架构师在掌握了足够多的信息后才决定该用什么数据库、Web服务器或框架。
菜鸟:好吧,不过如果把这些工具替换掉,我们就要重新实现业务逻辑了。 老鸟:那是你的问题。 菜鸟:为什么这么说? 老鸟:你认为业务逻辑依赖数据库,但实际上不是这样的。...老鸟:那么你就该知道,消息发送者是不知道消息接收者是什么类型的。 菜鸟:这要看使用的是哪一种语言了。在Java里,发送者最起码要知道接收者的基本类型。...我了解你的意思。不过发送者仍然依赖接收者。 老鸟:在运行时确实是的,但在编译时不是这样的。发送者的代码里并没有引用接收者的代码。实际上,是接收者的代码依赖了发送者的代码。 菜鸟:啊!...我们并没有打算为业务逻辑提供所有的数据库工具接口,而是业务逻辑创建了它们所需要的接口。在实现这些接口的时候,可以调用相应的工具。...老鸟:当架构师草率地决定使用一个框架,后来却发现框架提供的功能是团队不需要的,反而给团队带来了诸多约束。 老鸟:当架构师在掌握了足够多的信息后才决定该用什么数据库、Web服务器或框架。
用通俗的话来说,部署就是将应用服务软件“放”在远程服务器上,但是并不代表真正的用户可以看到这些新功能。当用户能看到这些新功能时,才代表发布了新功能。 这时,不懂技术的管理者又问了:怎么会呢?...你把东西摆上货架,用户还看不到吗? 你可以这样回答管理者∶软件是一种知识的载体,与实体的商品是有区别的。就像在你的大脑里储存着你懂得弹棉花的信息,但是你不告诉用户,客户是不知道你懂得弹棉花的。...进而你可以解释如何做到部署,但是不发布:通过一些技术,即使把最新的应用服务软件“放”到服务器上,但是用户也看不到这些功能。这些技术就像是开关一样,能在后台控制开和关。...,那也是工具的事情……这部分是自动化逻辑。...也就是说,我们需要在所有的受控机器上安装Puppet的客户端,在主控机器 上安装Puppet的服务器端。
“代码只服雷军”,雷军在小米之前,做了10年程序员。 据网友爆料,京东刘强东在一次讲座上,称自己大三(1995年)的时候,他给别人写代码,一个晚上就能赚5万。 设计师应该会写代码吗?...设计工具引入代码 Framer是一款结合代码与可视化实现的交互设计工具,因为通过代码,可以完全控制交互效果,设计师不仅停留在画图的层面,更多的可以关注到实现的真实效果。 写代码难吗?...4 计算机完成任务的时候,是如何反馈给我们的? 代码最难的是逻辑 引一位Oracle程序员在Hacker News上吐槽自己的工作的讨论。...03 理解功能 get到思想就好,理解代码里的每一句的含义,真实的行为,就跟读书一样,知道作者的核心思想是什么; 比如下面这3句,第1句是初始化一个类,该类可以提取图片的特征向量,第2句是通过文件路径打开图片...写代码是基本功,锻炼的是逻辑思维能力,跟解决问题的能力。 在不久的未来,写代码也是可以机器完成的,不知大家关注过这项研究吗?
众所周知,在Java中final String中的值是一成不变的。大家都知道String的+(拼接)运算会丢弃内存引用并在内存中重新开拓地址,事实上也确实如此。但final的变量真的是一成不变的吗?...他们钻研一门语言甚至知道所有具体实现的细节,甚至语言的bug。 但换个角度,在如此钻研的同时,你是否考虑了你的时间成本、女朋友以及后代?! 接口论 作为一个程序员,你是业务逻辑和代码实现的接口。...正如我在《如何成为10倍速的程序员》中所说的不要记忆。 我是在号召大家不求甚解吗? 是的。 反设计 如果把编程手段当成一种工具,无外乎语言、文档、框架,这些都可以当成是工具的一部分。...最后,专注、严谨、逻辑清晰是一个程序员的品质,但在技术迭代如此迅速的大背景下,在代码中追求极致是一个人类无法做到的(如果用掌握技巧的多来衡量的话,你永远无法掌握所有技巧,并且,在技术迭代过程中,你原本掌握的技巧也在逐步淘汰...,别忘了你生活中的朋友、家人和你的爱好。 过完圣诞就是新的一年,祝所有的程序员朋友圣诞快乐(本文写于平安夜),同时在新的一年里开启程序员新的、不一样的人生。
近日看到一些关于工具的文章,很多人对于写工具类文章都是蜻蜓点水,写搭建,写基础使用,但是基础的开源工具在生产环境上的使用其实是比较困难的,有很多需要二次开发做到与生产环境适配,今天写这篇文章的目的就在于开启开源工具二次开发的思路...因为基础的cobra是没有ssh下拉功能的,需要我们自己做二次开发 代码改动 首先在原基础的cobra上我们做一个拉代码的测试 ? 好像很叼的样子,没有漏洞,但是有层script提示没有选择目标 ?...500,询问了gitlab负责人才知道是根本没有开放http下拉代码的功能,统一使用ssh进行下拉。 那原基础的cobra能直接用ssh拉代码吗?试试看好了 ?...我的环境是做了git@code.xxx的免密推送,root用户密码我不知道啊,就算有权限难道把密码写在配置文件里又安全吗?...逻辑问题在于ssh的免密钥登录不需要密码,如果单纯以用户名密码作为判断依据那免密钥的作用就为零了,为了适配免密钥,实际上在代码中指定免密钥的用户即可,同时为保证其他基础功能不遭受破坏,增加的功能应使用判断前缀的方式进行代码改写
其实啊,这种问题很常见,很多程序员都和你一样,被这些琐碎的操作绑住了手脚。但你知道吗?有一个工具可以帮你大大简化这些流程,它叫——Makefile。听过吧?可你真的有在用吗?什么是 Makefile?...简单来说,你可以在一个文件里,定义好一系列的规则,然后每次只需要简单敲一个命令,Makefile 就能帮你自动完成那些重复、繁琐的工作。...对比起那些复杂的自动化工具,Makefile 更加轻量,没那么多“花里胡哨”的功能,专注于任务管理。这对很多项目来说,已经足够了。2....而且,Makefile 是跨平台的,无论你在 Windows、Mac 还是 Linux 上开发,它都能照常使用。这种灵活性,真是难得。3....简单、灵活又强大,这不正是我们做开发时最喜欢的工具吗?如何编写高效的 Makefile?1. 使用变量提升可维护性在 Makefile 中,你可以通过定义变量来简化命令。
这个认知是非常错误的,大家平时都会认可优秀程序员的核心特质看的是思维逻辑,而不是用哪个语言哪个技术。那如果是思维逻辑优先,写代码就能比查线上问题更能提升吗?...他在技术细节上的积累只是因为看了几本书,用了几次工具,这些都只是为了应付面试和不懂的领导,根本没有深入实践,他未来的瓶颈一定非常大。...再比如对于客户端的登录页面和注册页面,虽然渲染逻辑 90% 是一样的,但是不应该复用,因为它们是单一功能,不是能力,贸然复用反而带来了很大的风险。 分久必合,合久必分,这个的理解就很有意思了。...而在拆出一些独立逻辑的时候,也要思考这些逻辑可能和其它的哪些逻辑有机会是合起来的,那么尽量放在一个类里,一个包里,为后续的合做好准备。...相信更高认知人的指引 科幻神作三体里,外星人看地球人就像纸片一样,在三体人的眼中,地球人是二维的,而不是三维的。
比如说空调,如果不加以控制,难道一直制冷或者制热吗? 而控制空调温度和其余功能的,就是程序,程序可以是手动的。...这些语言的发展史,小伙伴们可以在百度搜索到,有兴趣可以去看看。 而现在的编程就好多了,都是所谓的高级语言, 百度百科上就写着 ?...你在文本文档里写的那句msgbox就是代码,这个代码就代表信息框, 你在引号里写的字,就是你自己设计的参数。...任何的程序设计语言,都有它自己的语法和代码形式, 也有它的优缺点,但是它们都是工具, 而你达到目的就需要用上这些工具, 它可能是任意一种语言,所以,学习编程就是学习这个工具如何使用。 难吗?...其实学啥的道理都是一样的,不过最主要的还是要去尝试, 光站在门外观望,是学不会的,再简单的东西也是困难的。
我当时是瑞典一家大型科技公司里一个新团队的一员。他们的代码风格很先进,他们以自己的代码库为荣。看起来很不错。你知道,我对开始在那里工作感到兴奋,但结果,我还是要调试和之前一样的内存模糊问题。...我突然有个想法,这是最好的结果了吗? 我的职业生涯就这样了吗? 我下半辈子都要做这个吗? 有趣的是,大概是在那一周或之后的一周,我在 Reddit 上看到了 Rust 1.0 最终版本即将发布的帖子。...显然,它履行了承诺,和我在 2009 年前后第一次发现 Rust 时一样。 左边是 Julius,右边是 Johannes 从那时起,我就开始在私下里关注 Rust 项目。...例如 Miri,从根本上讲,它是编译期间在虚拟机中运行代码,从而找出代码库中任何不健全之处。 JF:大学里不是也有人做了一个这样的工具吗?...对于性能分析,你可以使用标准的桌面工具,但我不确定效果怎么样。在进行测试时,我们会设法将所有硬件无关的逻辑隔离到它们自己的 crate 中。因为这样,我们就可以运行它们并使用该语言提供的内置测试支持。
Apipost: 他的分享功能就在主页面里,一个是单接口分享,一个是整个项目分享,一共需要两步就可以完成操作。...一开始我以为的协作就是各做各的,然后接口互相覆盖,但其实他们已经做到实时协作这个程度了,而且让人眼前一亮的是协作人员的在线状态和权限也可以在工作台里展示,这点不管是对于管理层还是协作者来说都很方便,感觉...七、界面布局 Apipost: 试用了一下大概摸清了Apipost的布局逻辑,黄色框内是项目/全局设置,红色框内是接口设置,左边的绿色框内基本上是一个工作流的划分。...个人感觉在实际工作中用起来很顺手,而且他的功能分区都是按实际使用场景分的,不会出现一个在工作步骤里需要跳转很多页面的情况,这点真的好评。...apifox: Apifox的工作流都是被一层一层的包裹住的,实际工作中想要找到某个功能还是比较困难的,以至于很多时候我都不确定某个功能是他没有还是我没找到,追溯问题时更是灾难现场,往往会浪费很多时间在排查错误步骤上
低代码开发过程常被比作拼积木:像拼搭积木一样,以可视化的方式,通过拖拉拽组件快速开发出数据填报、流程审批等应用程序,满足企业里比较简单的办公需求。 但这并不意味着低代码开发平台只能做到这些。...流程和业务逻辑:流程应用与业务逻辑开发能力和效率。这个能力有两层,第一层是指使用该低代码开发平台能否开发出复杂的工作流和业务处理逻辑;第二层是开发这些功能时的便利性和易用性程度有多高。...程序员的工作围绕开发需求展开。在选择开发工具时,程序员通常考虑的首要问题是:这款工具能否覆盖所有需求?如果需求增加或变更,该工具是否支持相关操作?这些问题同样适用于低代码平台的选型。...但我们需要注意的是,低代码开发平台本质上仍是软件开发工具,用户模型与软件开发周期支持是其关键能力之一。...低代码平台可以减少大量重复工作,提升开发效率,把专业开发人员从简单、重复的开发需求中解放出来,把精力投入到更有价值的事情上,比如精进技术、理清业务逻辑。
几周前我们在捷克的Linux大会“OpenAlt”上提出了这样的观点:物联网(IoT)是基于微服务的。我们打算覆盖所有实现层级,将难题放到一起。...两者的答案都是否定的。在不同位置上可能会有各种类型的多个网关,如果边缘设备足够智能的话,其中一些甚至使用的是TCP协议。更重要的是负责数据聚合的网关,其逻辑功能可能就是简单的路由器与消息转换器。...不过在具体的实现上,是否有什么不同呢? 令人惊讶的是,并没有区别。...微服务与干细胞一样,是根据所使用的地方以及用法来发挥具体功用的。 概念 我们为什么会认为自己的解决方案“正确”呢? 首先,我们希望覆盖所有级别的抽象。我们有物联网架构所有层面的组件与开发工具。...我们认为,鉴于其具有路由功能、可扩展性、集成性及发送消息的能力,Apache Camel非常适合扮演物联网网关。因此我们在Apache Camel中加入了Bulldog组件。
直到现在我还记得是读二年级的周六奥数班里,是一个胖胖的老师在我回答出三个人谁在撒谎的一个逻辑题的答案后,竖起大拇指表扬我说:“说得非常精彩!”。...要知道那时候我可是一上语文课都不敢抬头,生怕点起来啥也说不出的那种孩子。现在回想起来,为什么是数学呢?...尤其是应试阶段的数学,大量的枯燥练习,是很难建立起打游戏般的正向反馈激励的。不过好在有一个不错的起点,这样的正向循环在父母和学校构造的虚拟环境里和我的配合下就这么运转了起来。...因为在象牙塔的封闭环境里作为选拔工具存在的数学足够好用,我和那套规则竟然形成了完美的匹配。但是,随着读大学,做项目,参加工作,就像日薄西山的晚清一样,我总是浑身不自在。...至于在社会这所大学里,我那点形式逻辑似乎哪哪儿都行不通,小到找室友租个房子要闹矛盾,大到对亲人,朋友,同事,上级等各种关系中的应对,我就像当年那些怎么也解不出题目被我嘲笑的同学一样,我也十分纳闷
跟周围做中后台产品的文科生朋友相比在背景上更有优势,经常给他们解释在他们业务场景里的流程和概念,用通俗语言解释的过程对自己也是一种满足,觉得自己用技术帮助到别的人,有成就感。...腾讯实习情况: 是日常吗?蓝牌日常。 为什么只实习了三个月?第二学期双学位课多,第一学期是特意空出课表去实习的。 岗位职责?title数分,实际内容数据产品。 为什么还在找暑期?是因为疫情无法留学吗?...追问具体遇到的push点,分享具体场景,和同事沟通协作的难忘时刻,让面试官感受到难点: 第一个难点是刚才提到的工具产品化里,数据检查的结果返回,通过列清指标和检查规则保证结果可信度。...实习过程中,合作伙伴有无给出负向评价,指出自己在能力和性格上需要提升的地方 上一段实习跟导师同事在业务外的交流较少,没有给过具体工作能力的评价。 自我评价能力和性格上的缺陷: 能力缺陷:时间管理。...准备面试的过程了解了一些金融中后台的业务知识,比如账户体系。以前以为一人对一账,就和钱包一样,了解后发现账户体系是一人对多账,账之间填平,觉得是比较新的知识。实习生没有金融会计背景,需要怎么补足?
意在突出一种模块化和组件化的软件开发思想,助力敏捷开发,大幅度的提高开发效率和稳定性。站在模块化思想的思维角度上是思考和解决问题。而实际的本质上,也是做到了UI和业务逻辑的分离。只是看问题的维度不同。...跟后台通信上传记录和下放参数相关的都在通信线程任务里,需要定时执行的一些其他任务在定时任务线程里。这部分可以看做是业务的大体框架。 最上层就是最接近用户的UI显示层了。...至于这数据怎么个显示给UI,何时触发,由业务逻辑层负责触发事件,通过消息总线去通知UI更新或显示,更新或显示的内容在全局的静态类里。 这种模式,如果非要向MVP和MVVM的风格架构上套,它哪个都不是。...sql和数据库的优势木发挥出来。这里我只想说SQL是强大,但是你会用高射炮去打蚊子吗。满足需要才是目的。我在终端上压根用不到负复杂的查询。...那么通信模块和存储模块和工具类模块则是直接可以拿走用的。 如果,想在电脑上实现这么一款POS机咋办? 那么业务部分是不需要动的,卡操作模块改变下,换成操作读卡器模式。
在IPV6下用的是 ping6 ::1 命令。 什么是 ping ping 是应用层命令,可以理解为它跟游戏或者聊天软件属于同一层。只不过聊天软件可以收发消息,还能点个赞什么的,有很多复杂的功能。...而 ping 作为一个小软件,它的功能比较简单,就是尝试发送一个小小的消息到目标机器上,判断目的机器是否可达,其实也就是判断目标机器网络是否能连通。 ping应用的底层,用的是网络层的ICMP协议。...SOCK_STREAM 是指使用面向字节流的 TCP 协议,工作在传输层。 创建好了 socket 之后,就可以愉快的把要传输的数据写到这个文件里。...因此 本质上ping 跟 普通应用发消息 在程序流程上没太大差别。 这也解释了为什么当你发现怀疑网络有问题的时候,别人第一时间是问你能ping通吗?...ping 回环地址和 ping 本机地址,是一样的,走的是lo0 "假网卡",都会经过网络层和数据链路层等逻辑,最后在快要出网卡前狠狠拐了个弯, 将数据插入到一个链表后就软中断通知 ksoftirqd
Iot 场景 FBP 还可以应用在嵌入式设备上,尤其是适用于智能家居行业这种需求复杂多变的场景里。...一般在 ComponentDidMount 里发起请求,根据请求成功的数据完成渲染或其他业务逻辑,这种是完全无 UI 的 Ajax 请求处理。...如果通过结构化业务逻辑编排,同时生成放到 CDN 上的代码和 FaaS 上的代码,是不是一举两得,可以将前端的复杂度降低,甚至说在 Lowcode 领域,再夺一城。 能否像运营配置一样开发?...iMove 是一个逻辑可复用的,面向函数的,流程可视化的 JavaScript 工具库。 它是个工具,无侵入性。 双击编写函数,编排后的流程可以导出可执行代码,便于在具体项目里做集成。...让开发像运营配置一样完成功能开发,做到复用和Lowcode。 ? 界面如下。 ? 简单讲,其实我们理想的前端可以做以下4点。 逻辑可组装:其实是接口和 UI 在最小粒度上的复用。
在IPV6下用的是 ping6 ::1 命令。 什么是 ping ping 是应用层命令,可以理解为它跟游戏或者聊天软件属于同一层。只不过聊天软件可以收发消息,还能点个赞什么的,有很多复杂的功能。...而 ping 作为一个小软件,它的功能比较简单,就是尝试发送一个小小的消息到目标机器上,判断目的机器是否可达,其实也就是判断目标机器网络是否能连通。...因此 本质上ping 跟 普通应用发消息 在程序流程上没太大差别。 这也解释了为什么当你发现怀疑网络有问题的时候,别人第一时间是问你能ping通吗?...127.0.0.1 和 localhost 以及 0.0.0.0 有区别吗 回到文章开头动图里的提问,算是面试八股文里的老常客了。...ping 回环地址和 ping 本机地址,是一样的,走的是lo0 "假网卡",都会经过网络层和数据链路层等逻辑,最后在快要出网卡前狠狠拐了个弯, 将数据插入到一个链表后就软中断通知 ksoftirqd
领取专属 10元无门槛券
手把手带您无忧上云