- 博客(33)
- 资源 (124)
- 问答 (1)
- 收藏
- 关注
原创 一次代码评审,差点过不了试用期!
作者:小傅哥博客:https://bugstack.cn沉淀、分享、成长,让自己和他人都能有所收获!????一、前言好的代码往往也很好看代码是给机器运行的,但同样也是给人看的,并且随着上线还需要由人来运维。那么写出可扩展、易维护、好读懂的代码就显得非常重要。对于新人来说,互联网大厂项目开发与平常自己学习的代码还是有很大的差别的。日常学习时候通常只要能运行出结果即可,并不会有其他的要求。也不会说有;PRD评审、研发设计评审、代码开发、代码评审以及中间一些列的提交物,直到测试完成,上线验证,开量
2020-09-15 09:46:38 12768 14
原创 PPT画成这样,述职答辩还能过吗?
作者:小傅哥博客:https://bugstack.cn沉淀、分享、成长,让自己和他人都能有所收获!????一、前言标题有点凶,但内容很干! 大部分程序员并不会画PPT,也梳理不出架构图。工作的年头虽然多,但却不对自己的知识进行整理汇总,久而久之只能干,不会说。好,那么本文就带着你一起画画图,做个画画的baby!数学好的一般代码写的好,那下象棋好的呢?????做程序猿多年后,经常会有家里的亲戚询问,自己家小孩报计算机行吗。他数学好、他英语好、他喜欢打游戏...,一般情况我也都推荐去学 ja
2020-09-28 14:27:23 2463
原创 面经手册 · 第12篇《面试官,ThreadLocal 你要这么问,我就挂了!》
作者:小傅哥博客:https://bugstack.cn沉淀、分享、成长,让自己和他人都能有所收获!????一、前言说到底,你真的会造火箭吗?常说面试造火箭,入职拧螺丝。但你真的有造火箭的本事吗,大部分都是不敢承认自己的知识盲区和技术瓶颈以及经验不足的自嘲。面试时:我希望你懂数据结构,因为这样的你在使用HashMap、ArrayList、LinkedList,更加得心应手。我希望你懂散列算法,因为这样的你在设计路由时,会有很多选择;除法散列法、平方散列法、斐波那契(Fibonacci)
2020-09-24 09:28:32 2552 2
原创 专栏学习简述以及全套源码获取
一、前言本专栏是作者小傅哥使用JavaFx、Netty4.x、SpringBoot、Mysql等技术栈和偏向于DDD领域驱动设计方式,搭建的仿桌面版微信聊天工程实现通信核心功能。在接下来的章节里会一步步来带着大家从UI到功能逐项实现。在后续的专栏内容的讲解中,会有很多涉及到代码的地方,可以先进行下载源码对照学习。二、功能 登陆页面 聊天页面 添加好友 消息...
2020-09-22 12:09:38 3806
原创 PC 端微信页面拆分及 JavaFx 使用
一、前言对于一个知识点的学习过程来说,往往使用自己熟悉的工具或方式才更易于上手。因为所有同类型的知识点在抛出复杂的流程拨云见日后,所能得到的几乎都是同样的设计思想和实现理论。在 Java 语言桌面版开发中,直至目前共提供了三套 UI 开发方式;Awt、Swing、JavaFx,以及一些扩展组件 SWT 等。在这三套 UI 组件中,JavaFx 是最新也是最为好用的,因为他提供了丰富的功能,以及...
2020-09-22 12:09:36 3044
原创 登陆框体实现:结构定义、输入框和登陆
一、前言从本章节开始我们会陆续实现各个框体的 UI 开发,内容会包括;框体拆解、工程结构、代码开发,以及最后编写事件和接口。在 JavaFx 中,一个框体包含;窗口 (Stage)、场景(Scene)、布局(Pane)、控件(Button 等) 这四方面内容。而开发过程中可以使用 xml 和编码两种方式进行处理,一般一些预定好的会使用 xml 结构,如果是随着我们业务行为触达而产生的会开发到代...
2020-09-22 12:09:34 2727
原创 登陆框体事件与接口
一、前言在上一章节中我们把登陆窗体开发完成了,并进行了效果演示。那么接下来我们就需要在这个窗体里面添加行为事件和接口,待完成内容如下;序号类型描述1事件鼠标拖拽窗体移动2事件最小化到快捷栏3事件退出当前窗体4事件使用用户 ID 和密码登陆5接口登陆成功,执行跳转操作6接口登陆失败,执行提示操作在桌面版程序开发中...
2020-09-22 12:09:33 1976
原创 聊天框体实现:整体结构定义、侧边栏
一、前言在前面章节我们实现了登陆窗体开发以及窗体需要的事件和接口,最终我们演示了运行效果。从上面简单的例子,我们可以学一个简单窗体的开发和框架结构的定义。那么接下来我们开始开发聊天窗体,相对于登陆窗体来说,聊天窗体的内容会比较多,同时也会相对复杂一些。因此我们会分章节的逐步来实现这些窗体以及事件和接口功能。在本篇文章中我们会主要讲解聊天框体的搭建以及侧边栏 UI 开发。二、框体分析为了更加...
2020-09-22 12:09:31 2257
原创 聊天框体实现:对话框
一、前言本章节我们来实现仿微信聊天对话框部分,对话框的功能是将与某个好友或者群组聊天的集合体现。如果你还记得以前的 QQ,那时候与任何一个好友或者群组通信,都是单独打开的窗体,需要在各个窗体间切换聊天。不过那时候大部分人的即时通信的好友并不多,所以也很适合。但是随着后来移动互联网的发展,也推进桌面版聊天软件的优化。那么本章节我们就来实现这部分对话框的窗体实现。在你还没有往下看的时候,可以思考下...
2020-09-22 12:09:30 2268
原创 聊天框体实现:对话聊天框
一、前言在上一章节我们实现了对话框体的 UI 部分,可以选中对话好友并可以删除操作。那么接下来我开始实现对话框选中后的内容区域展现,也就是用户之间信息发送和展现。从整体上看这是一个联动的过程,点击左侧的对话框用户,右侧就有相应内容的填充。那么右侧被填充对话列表 ListView 需要与每一个对话用户关联,点击聊天用户的时候,是通过反复切换填充的过程。在没有实现这部分功能之前,你也可以先主动思考下...
2020-09-22 12:09:28 2938
原创 聊天框体实现:好友栏
一、前言截至到本章节我们将聊天框体中的主页面 UI 内容实现完成,可以展示对话列表、选中模拟发送消息、删除对话框等功能。那么接下来我们将开发 好友 页的 UI,目前这一部分还是一个块空白的白板,我们需要在里面首先开发好友列表的功能。大家都经常使用 PC 端的微信,可以知道在好友栏里是分了几段内容的,其中包含;新的朋友、公众号、群组和最下面的好友。那么这样的 UI 结构你是否有所思考该如何开发吗?...
2020-09-22 12:09:26 1866
原创 聊天框体实现:好友填充框
一、前言这一章节里我们需要实现的是将好友栏中四个内容;“新的朋友”、“公众号”、“群组”、“好友”,添加完善相应的功能。如下;在“新的朋友”里添加好友搜索和添加的功能。因为我们实现的 PC 端微信,是没有手机端的,所以我们需要在这里添加好友搜索功能。如果你开发的是企业聊天软件,那么这里的好友就是你的企业组织关系。在“公众号”里添加一个公众号的展示。因为这部分不是我们主要实现的功能,所以只做...
2020-09-22 12:09:25 1706
原创 聊天框体事件定义
一、前言在桌面版 UI 开发中,为了能使 UI 与业务逻辑隔离,需要在我们把 UI 打包后提供出操作界面的展示效果的接口以及界面操作事件抽象类。那么可以按照下图理解; 从示意图中可以看到,我们可以通过一些列提供出的接口,来操作 UI 效果的展示。之后是每一个 UI 里的行为操作都会产生相应那么的事件,那么我们可以在 UI 中定义抽象类,并由外部来实现这些类最终交给 UI,这样就可以做到...
2020-09-22 12:09:23 1698
原创 练习篇:聊天表情框体实现
一、前言结合我们已经学习开发了JavaFx的很多功能,这里设置一个练习题锻炼下对框体的功能实现。二、练习题本章节的练习题是:在聊天窗体中开发默认表情框功能,如下图; 三、思路按照我们的UI架构模型,可以思考下开发这样一个表情弹出层都需要哪些方面的代码类。因为是两个界面之间的交互,那么你是需要到JavaFx的模态窗口功能。可以主动搜索这样的实现方法。另外表情内容的下载这里提供...
2020-09-22 12:09:22 1560
原创 解答篇:聊天表情框体实现
一、前言在上一章节我们设定一个练习题,“聊天表情框体”的实现。那么在没有继续往下看之前你是否有实现了自己的框体效果呢?或者思考到了哪些点,实现了多少功能以及遇到了什么样的问题。现在可以带着你的问题继续往下看,这里我会提供一种实现方式。当然,如果你实现了自己的效果可以在留言区回复哦!二、工程结构itstack-naive-chat-ui└── src ├── main │ ...
2020-09-22 12:09:20 1594
原创 服务端架构设计
一、前言可能有些同学一听到架构会感觉到有些“高大上”,或者以为这些东西有些神秘。当然如果是刚刚接触开发没多久,或者刚工作只是参与业务需求的实现,并没有从整体看待全局。那么是有可能对这些架构的字眼有些发蒙。其实从简单来说,哪怕是你最开始练习做作业的 CRUD,其实它也是一种建构模式。只不过在这个架构的世界里有一个叫更适合的词,只有适合你业务的才是更好的架构。不一定非得把你仅仅是一个非常小的几十人访...
2020-09-22 12:09:18 2527
原创 通信协议包定义
一、前言有些小伙伴,可能刚开始接触 Netty 通信,并不一定能理解为什么要做通信协议包的定义。那么你是否接触过 RPC 框架,比如说使用过 Dubbo 做一些分布式的接口,那么这个时候是需要将提供接口的一端,提供一个 jar 包,这个 jar 包就是接口信息的描述性文件。好 !不管你是否接触过或者学习过。为了能让小伙伴们更清晰的了解定义通信协议包,同时也让没怎么接触过 Netty 的伙伴了解...
2020-09-22 12:09:16 2205
原创 客户端架构设计
一、前言在设计客户端的架构之前,我们先思考下我们的目标以及目前已经完成的内容。好!那么你是否还能记得我们最开始设计 UI 组件包的时候,就已经反复提到要将我们的 UI 与业务进行分离,不要将业务流程代码写到 UI 窗口里去。否则你的代码将越来越难以为维护,每新增加一个功能都将会让你从很多的代码中“贴膏药”似的补来补去。UI 方面:我们已经完成了 UI 包的开发,并使用 Maven 进行打包对外...
2020-09-22 12:09:15 2519
原创 数据库表结构设计
一、前言 MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL 是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。阅读到这篇文章的小伙伴,或多或少都是使用过关系型数据库的...
2020-09-22 12:09:13 2473
原创 登录功能实现
一、前言介绍在前面我们已经完成;UI 界面开发、服务端架构设计、客户端架构设计、库表设计。那么接下来从本节开始,陆续实现我们的通信核心功能。在讲解的过程中我会在章节中提供简要明了的系统流程图,以及代码核心功能的实现。这也是我们逐步使用 DDD 四层设计模式与 Netty 结合的实践。二、流程设计首先是用户在窗体中发起登录事件并由客户端向服务端发送登录请求。之后服务端验证后,再将验证结...
2020-09-22 12:09:12 2124
原创 搜索和添加好友
一、前言介绍在上一章节我们实现了用户登录到成功后跳转到主窗体聊天中,而目前跳转后我们还不能发起 聊天,因为目前我们的个人用户还没有自己的好友。那么接下来我们来实现搜索和添加好友功能,因为在微信中是可以从手机端扫描或者通信录进行添加好友。但是我们目前只有 PC 端所以需要在服务端来搜索添加。在实现功能之前,可以先回顾下我们进行库表设计的时候有一张用户表,那么可以在搜索的时候从这里搜索好友信息,搜...
2020-09-22 12:09:10 1912
原创 对话通知与应答
一、前言在我们使用微信的时候都会看到有一个聊天发送信息的地方左面是“好友栏”,但是这个好友栏可不是你的所有好友,而是与谁对话了才会在这里看到好友信息,我们称之为这个为对话框列表。这让我想起最开始我爸爸妈妈使用微信的时候,经常会说我好友咋找不到了,头几天还跟我说话了呢。而且也不敢删这里面的记录,后来就越来越卡越来越卡。不过现在是玩明白了,还熟的很!那么,从产品流程角度看,这个好友栏是怎么有的数据...
2020-09-22 12:09:09 1598
原创 用户与好友通信
一、前言经过我们一系列基础工作的开发,写到这里终于可以要去实现两个用户之间的通信了。可以先想一下我们都做了那些基础工作才到这里;加好友、好友列表、对话通知。是这三大部分的完成,为下一步好友之间的通信打下基础。那么,好友之间的通信基本需要的是,好友需要在线,因为只有这样才能拿到好友的 channel,也就是通信管道。当客户端 A 发送消息到服务端,服务端找到被接收消息的 B 的通信取到,开始将消...
2020-09-22 12:09:07 1688
原创 用户与群组通信
一、前言在上一章节我们实现了好友与好友的通信流程,可以简单回忆下我们是从对话框中选择好友进行发送信息。那么我们的对话框中还有一个默认的群组,接下来我们主要实现用户群组的通信。群组通信在 Netty 的实现中,是需要将用户的通信管道 Channel 放到 ChannelGroup 中进行群发消息,这样只要在这个通信管道组里的用户都可以收到消息。接下来我们实现具体的逻辑功能。我们的群组目前是一个...
2020-09-22 12:09:06 1783
原创 断线重连恢复通信
一、前言在我们日常使用聊天软件进行通信的时候,可能有时候会由于我们的网络环境问题而导致没有网可用,也就是暂时性的断网。那么此时你的聊天软件发送信息,就不能被接收到了。但是当网络恢复后,我们的聊天就又可以继续了。在这里有一个非常重要的保持通信的手段,就是断线重连。以此来保证在网络以及以其他原因导致断线后,可以在网络恢复后,通信也可以随时恢复。如果,没有这样的功能,那么你就需要退出登录再重新连接了。...
2020-09-22 12:09:04 2120
原创 服务端控制台搭建
一、前言到本章节我们通信的基本功能已经完成,那么接下来我们需要对通信服务做一个管理,例如 Netty 服务的运行状态、用户列表和在线状态以及各种纬度的通信信息查询等等。这些都是服务端控制台的用途,我们可以使用网页版的后台来进行搭建我们的控制台。接下来,我们就开发完善这一个后台的基础功能,有了这样的基础的服务端控制台,小伙伴就可以在里面进行不断的扩展控制功能。二、工程结构itstack-na...
2020-09-22 12:09:03 1751
原创 练习篇:聊天表情发送功能实现
一、前言什么是聊天中的灵魂呢?当然是表情了,如果没有表情只是文字,那么你怎么表达自己的不可被束缚的情感呢。二、练习题在UI学习完成后,我们设置了一个练习题,来开发表情框体。那么这一章节我们再加一个练习题,来完成表情的发送。 三、思路微信表情也是分为几种的,有固定表情、自己下载的表情、添加的表情、发送的图片。那么我们在这里实现的固定的表情,就是系统默认的。这里的表情实现起来并不难,...
2020-09-22 12:09:01 1974
原创 解答篇:聊天表情发送功能实现
一、前言在上一章节我们设置了这样的一个练习题;“** 聊天表情发送功能实现 **”,那么你是否实现了发送表情呢,还是实现了更加强大的功能。学习的阶段当你已经入门了以后,就需要逐步开始简历自己的思维路径,并去实践。二、流程设计从我们的流程中可以看到,固定表情的发送与我们发送用户信息、群组信息,是一样的。但是这里有一个点需要注意,那就是需要定义消息类型。固定表情的消息类型我们设置为 1,原有...
2020-09-22 12:08:59 2275
原创 程序员为什么热衷于造轮子,升职加薪吗?
作者:小傅哥博客:https://bugstack.cn - 原创系列专题文章沉淀、分享、成长,让自己和他人都能有所收获!????一、前言哪个架构师没造过轮子?你想过这样一件事吗?是先具备能力在安排职位,还是先安排职位在学习? ????什么?走后门,你出去!就像我们上学考试、跆拳道考段、晋升答辩一样,都是先具备了可胜任上一阶段的能力,才给予相应的职位。所以,架构师造轮子从做程序员时候就开始了,只不过到了架构师阶段可以造出更好的轮子。鉴于实际业务开发的紧急程度,不会允许你造轮子。但造轮子,
2020-09-21 09:30:49 1908 2
原创 面经手册 · 第11篇《StringBuilder 比 String 快?空嘴白牙的,证据呢!》
作者:小傅哥博客:https://bugstack.cn沉淀、分享、成长,让自己和他人都能有所收获!????一、前言聊的是八股的文,干的是搬砖的活!面我的题开发都用不到,你为什么要问?可能这是大部分程序员求职时的经历,甚至也是大家讨厌和烦躁的点。明明给的是拧螺丝的钱、明明做的是写CRUD的事、明明担的是成工具的人!明明… 有很多,可明明公司不会招5年开发做3年经验的事、明明公司也更喜欢具有附加价值的研发。有些小公司不好说,但在一些互联网大厂中,我们都希望招聘到具有培养价值的,也更喜欢能快速打
2020-09-18 09:35:58 1642 1
原创 面经手册 · 第10篇《扫盲java.util.Collections工具包,学习排序、二分、洗牌、旋转算法》
作者:小傅哥博客:https://bugstack.cn沉淀、分享、成长,让自己和他人都能有所收获!????一、前言算法是数据结构的灵魂!好的算法搭配上合适的数据结构,可以让代码功能大大的提升效率。当然,算法学习不只是刷题,还需要落地与应用,否则到了写代码的时候,还是会for循环+ifelse。当开发一个稍微复杂点的业务流程时,往往要用到与之契合的数据结构和算法逻辑,在与设计模式结合,这样既能让你的写出具有高性能的代码,也能让这些代码具备良好的扩展性。在以往的章节中,我们把Java常用的数
2020-09-11 08:36:14 1642
原创 握草,你竟然在代码里下毒!
作者:小傅哥博客:https://bugstack.cn沉淀、分享、成长,让自己和他人都能有所收获!????一、前言学过的代码记不住?方式不对才记不住,你这么记!Git:上厕所不叫上厕所,叫拉分支!Socket:厕所就是服务器,坑就是端口!队列:上厕所????叫入队列,先进先出!栈:去厨房????叫进栈,后进先出!架构:三居的格局叫MVC,四居的格局叫DDD!理论:系统结构设计定的好,有点bug没问题,能改。这就是茅坑跟坐便的区别。除了有点味道以外,这回是不记住了,我们编程写代
2020-09-07 09:35:21 3247
原创 面经手册 · 第9篇《队列是什么?什么是双端队列、延迟对列、阻塞队列,全是知识盲区!》
作者:小傅哥博客:https://bugstack.cn沉淀、分享、成长,让自己和他人都能有所收获!????一、前言买房子最重要的是房屋格局!如果买房子能接受地理位置、平米价格外,最重要的就是房屋格局。什么?丈母娘!你????????♂,出去! 房屋的格局其实对应的就是程序开发的根本,也就是数据结构。有的土豪可以用钱换空间,房间格局更大,那没钱的就只能选经济小空间节省钱。是不是很像不同的数据结构,直接影响着是空间换时间,还是时间换空间。那么,再细看房间,如;客厅沙发坐人像散列表、上卫生间像进
2020-09-03 09:32:00 2075 2
《倚天村·图解数据结构》- @小傅哥
2022-10-26
小傅哥整理的技术浏览器书签【导入浏览器】.zip
2021-11-02
jdk-8u281 资源整合 (windows、mac、linux).zip
2021-04-13
谢飞机简历模板合集,实习生、应届生、工作1~3年、工作3~5年.zip
2021-03-18
elasticsearch-7.10.2、kibana-7.10.2 Windows 版.zip
2021-03-11
技术架构涵盖内容和演变过程总结的架构图.pptx
2021-03-04
Java 面经手册·小傅哥.pdf
2021-01-26
《重学java设计模式》PDF.zip_java核心技术PDF
2020-10-22
小傅哥的字节码编程(公众号:bugstack虫洞栈).pdf
2020-06-08
rubyinstaller-devkit-2.5.7-1-x64.zip
2020-03-28
JAVA核心知识点整理[微信公众号:bugstack虫洞栈]=>推荐.pdf
2019-10-21
netty案例,netty4.1中级拓展篇十三《Netty基于SSL实现信息传输过程中双向加密验证》源码
2019-10-11
netty案例,netty4.1中级拓展篇十二《Netty流量整形数据流速率控制分析与实战》源码
2019-10-11
netty案例,netty4.1中级拓展篇十一《Netty基于ChunkedStream数据流切块传输》源码
2019-10-11
netty案例,netty4.1中级拓展篇十《Netty接收发送多种协议消息类型的通信处理方案》源码
2019-10-11
netty案例,netty4.1中级拓展篇九《Netty集群部署实现跨服务端通信的落地方案》源码
2019-10-11
netty案例,netty4.1中级拓展篇八《Netty心跳服务与断线重连》源码
2019-10-11
netty案例,netty4.1中级拓展篇七《Netty请求响应同步通信》源码
2019-10-11
netty案例,netty4.1中级拓展篇六《SpringBoot+Netty+Es信息数据存储》源码
2019-10-11
netty案例,netty4.1中级拓展篇五《基于Netty搭建WebSocket,模仿微信聊天页面》源码
2019-10-11
netty案例,netty4.1中级拓展篇四《Netty传输文件、分片发送、断点续传》源码
2019-10-11
netty案例,netty4.1中级拓展篇三《Netty传输Java对象》源码
2019-10-11
netty案例,netty4.1中级拓展篇二《Netty使用Protobuf传输数据》源码
2019-10-11
netty案例,netty4.1中级拓展篇一《Netty与SpringBoot整合》源码
2019-10-11
netty案例,netty4.1基础入门篇十二《简单实现一个Netty的Http服务》源码
2019-10-11
netty案例,netty4.1基础入门篇十一《netty udp通信方式案例Demo》源码
2019-10-11
netty案例,netty4.1基础入门篇十《关于ChannelOutboundHandlerAdapter简单使用》源码
2019-10-11
netty案例,netty4.1基础入门篇九《自定义编码解码器,处理半包、粘包数据》源码
2019-10-11
netty案例,netty4.1基础入门篇八《NettyClient半包粘包处理、编码解码处理、收发数据方式》源码
2019-10-11
netty案例,netty4.1基础入门篇七《嗨!NettyClient》源码
2019-10-11
netty案例,netty4.1基础入门篇六《NettyServer群发消息》源码
2019-10-11
netty案例,netty4.1基础入门篇五《NettyServer字符串编码器》源码
2019-10-11
netty案例,netty4.1基础入门篇四《NettyServer收发数据》源码
2019-10-11
netty案例,netty4.1基础入门篇三《NettyServer字符串解码器》源码
2019-10-11
netty案例,netty4.1基础入门篇二《NettyServer接收数据》源码
2019-10-11
| netty案例,netty4.1基础入门篇一《嗨!NettyServer》
2019-10-11
《初入JavaIO之门BIO、NIO、AIO实战练习》源码
2019-10-11
Netty4.1实战-手写RPC框架.pdf
2019-09-01
全网最火的设计模式分享!
2020-10-16
TA创建的收藏夹 TA关注的收藏夹
TA关注的人