8 小傅哥

我要认证

小傅哥多年从事一线互联网Java开发,旨在为大家提供一个清晰详细的学习教程,侧重点更倾向编写Java核心内容。如果能为您提供帮助,请给予支持(关注、点赞、分享)!在过去码文的一年里付出了所有的深夜和假期进行码文,创建了9个较大专题类文章;《用Java实现JVM》、《Netty4.x专题》、《中间件开发》、《领域驱动设计》、《全链路监控》等和近150篇原创,也整理了第一本关于字节码编程的PDF书籍,共计11万余字。同时建设了第一个关于:CodeGuide|程序员编码指南,的Git仓库,涵盖了;书籍、源码、案例、文章等各项学习拓展技能的资料。

等级
TA的排名 3k+

PPT画成这样,述职答辩还能过吗?

作者:小傅哥博客:https://bugstack.cn沉淀、分享、成长,让自己和他人都能有所收获!????一、前言标题有点凶,但内容很干! 大部分程序员并不会画PPT,也梳理不出架构图。工作的年头虽然多,但却不对自己的知识进行整理汇总,久而久之只能干,不会说。好,那么本文就带着你一起画画图,做个画画的baby!数学好的一般代码写的好,那下象棋好的呢?????做程序猿多年后,经常会有家里的亲戚询问,自己家小孩报计算机行吗。他数学好、他英语好、他喜欢打游戏...,一般情况我也都推荐去学 ja

2020-09-28 14:27:23

面经手册 · 第12篇《面试官,ThreadLocal 你要这么问,我就挂了!》

作者:小傅哥博客:https://bugstack.cn沉淀、分享、成长,让自己和他人都能有所收获!????一、前言说到底,你真的会造火箭吗?常说面试造火箭,入职拧螺丝。但你真的有造火箭的本事吗,大部分都是不敢承认自己的知识盲区和技术瓶颈以及经验不足的自嘲。面试时:我希望你懂数据结构,因为这样的你在使用HashMap、ArrayList、LinkedList,更加得心应手。我希望你懂散列算法,因为这样的你在设计路由时,会有很多选择;除法散列法、平方散列法、斐波那契(Fibonacci)

2020-09-24 09:28:32

专栏学习简述以及全套源码获取

一、前言本专栏是作者小傅哥使用JavaFx、Netty4.x、SpringBoot、Mysql等技术栈和偏向于DDD领域驱动设计方式,搭建的仿桌面版微信聊天工程实现通信核心功能。在接下来的章节里会一步步来带着大家从UI到功能逐项实现。在后续的专栏内容的讲解中,会有很多涉及到代码的地方,可以先进行下载源码对照学习。二、功能 登陆页面 聊天页面 添加好友 消息...

2020-09-22 12:09:38

PC 端微信页面拆分及 JavaFx 使用

一、前言对于一个知识点的学习过程来说,往往使用自己熟悉的工具或方式才更易于上手。因为所有同类型的知识点在抛出复杂的流程拨云见日后,所能得到的几乎都是同样的设计思想和实现理论。在 Java 语言桌面版开发中,直至目前共提供了三套 UI 开发方式;Awt、Swing、JavaFx,以及一些扩展组件 SWT 等。在这三套 UI 组件中,JavaFx 是最新也是最为好用的,因为他提供了丰富的功能,以及...

2020-09-22 12:09:36

登陆框体实现:结构定义、输入框和登陆

一、前言从本章节开始我们会陆续实现各个框体的 UI 开发,内容会包括;框体拆解、工程结构、代码开发,以及最后编写事件和接口。在 JavaFx 中,一个框体包含;窗口 (Stage)、场景(Scene)、布局(Pane)、控件(Button 等) 这四方面内容。而开发过程中可以使用 xml 和编码两种方式进行处理,一般一些预定好的会使用 xml 结构,如果是随着我们业务行为触达而产生的会开发到代...

2020-09-22 12:09:34

登陆框体事件与接口

一、前言在上一章节中我们把登陆窗体开发完成了,并进行了效果演示。那么接下来我们就需要在这个窗体里面添加行为事件和接口,待完成内容如下;序号类型描述1事件鼠标拖拽窗体移动2事件最小化到快捷栏3事件退出当前窗体4事件使用用户 ID 和密码登陆5接口登陆成功,执行跳转操作6接口登陆失败,执行提示操作在桌面版程序开发中...

2020-09-22 12:09:33

聊天框体实现:整体结构定义、侧边栏

一、前言在前面章节我们实现了登陆窗体开发以及窗体需要的事件和接口,最终我们演示了运行效果。从上面简单的例子,我们可以学一个简单窗体的开发和框架结构的定义。那么接下来我们开始开发聊天窗体,相对于登陆窗体来说,聊天窗体的内容会比较多,同时也会相对复杂一些。因此我们会分章节的逐步来实现这些窗体以及事件和接口功能。在本篇文章中我们会主要讲解聊天框体的搭建以及侧边栏 UI 开发。二、框体分析为了更加...

2020-09-22 12:09:31

聊天框体实现:对话框

一、前言本章节我们来实现仿微信聊天对话框部分,对话框的功能是将与某个好友或者群组聊天的集合体现。如果你还记得以前的 QQ,那时候与任何一个好友或者群组通信,都是单独打开的窗体,需要在各个窗体间切换聊天。不过那时候大部分人的即时通信的好友并不多,所以也很适合。但是随着后来移动互联网的发展,也推进桌面版聊天软件的优化。那么本章节我们就来实现这部分对话框的窗体实现。在你还没有往下看的时候,可以思考下...

2020-09-22 12:09:30

聊天框体实现:对话聊天框

一、前言在上一章节我们实现了对话框体的 UI 部分,可以选中对话好友并可以删除操作。那么接下来我开始实现对话框选中后的内容区域展现,也就是用户之间信息发送和展现。从整体上看这是一个联动的过程,点击左侧的对话框用户,右侧就有相应内容的填充。那么右侧被填充对话列表 ListView 需要与每一个对话用户关联,点击聊天用户的时候,是通过反复切换填充的过程。在没有实现这部分功能之前,你也可以先主动思考下...

2020-09-22 12:09:28

聊天框体实现:好友栏

一、前言截至到本章节我们将聊天框体中的主页面 UI 内容实现完成,可以展示对话列表、选中模拟发送消息、删除对话框等功能。那么接下来我们将开发 好友 页的 UI,目前这一部分还是一个块空白的白板,我们需要在里面首先开发好友列表的功能。大家都经常使用 PC 端的微信,可以知道在好友栏里是分了几段内容的,其中包含;新的朋友、公众号、群组和最下面的好友。那么这样的 UI 结构你是否有所思考该如何开发吗?...

2020-09-22 12:09:26

聊天框体实现:好友填充框

一、前言这一章节里我们需要实现的是将好友栏中四个内容;“新的朋友”、“公众号”、“群组”、“好友”,添加完善相应的功能。如下;在“新的朋友”里添加好友搜索和添加的功能。因为我们实现的 PC 端微信,是没有手机端的,所以我们需要在这里添加好友搜索功能。如果你开发的是企业聊天软件,那么这里的好友就是你的企业组织关系。在“公众号”里添加一个公众号的展示。因为这部分不是我们主要实现的功能,所以只做...

2020-09-22 12:09:25

聊天框体事件定义

一、前言在桌面版 UI 开发中,为了能使 UI 与业务逻辑隔离,需要在我们把 UI 打包后提供出操作界面的展示效果的接口以及界面操作事件抽象类。那么可以按照下图理解; 从示意图中可以看到,我们可以通过一些列提供出的接口,来操作 UI 效果的展示。之后是每一个 UI 里的行为操作都会产生相应那么的事件,那么我们可以在 UI 中定义抽象类,并由外部来实现这些类最终交给 UI,这样就可以做到...

2020-09-22 12:09:23

练习篇:聊天表情框体实现

一、前言结合我们已经学习开发了JavaFx的很多功能,这里设置一个练习题锻炼下对框体的功能实现。二、练习题本章节的练习题是:在聊天窗体中开发默认表情框功能,如下图; 三、思路按照我们的UI架构模型,可以思考下开发这样一个表情弹出层都需要哪些方面的代码类。因为是两个界面之间的交互,那么你是需要到JavaFx的模态窗口功能。可以主动搜索这样的实现方法。另外表情内容的下载这里提供...

2020-09-22 12:09:22

解答篇:聊天表情框体实现

一、前言在上一章节我们设定一个练习题,“聊天表情框体”的实现。那么在没有继续往下看之前你是否有实现了自己的框体效果呢?或者思考到了哪些点,实现了多少功能以及遇到了什么样的问题。现在可以带着你的问题继续往下看,这里我会提供一种实现方式。当然,如果你实现了自己的效果可以在留言区回复哦!二、工程结构itstack-naive-chat-ui└── src ├── main │ ...

2020-09-22 12:09:20

服务端架构设计

一、前言可能有些同学一听到架构会感觉到有些“高大上”,或者以为这些东西有些神秘。当然如果是刚刚接触开发没多久,或者刚工作只是参与业务需求的实现,并没有从整体看待全局。那么是有可能对这些架构的字眼有些发蒙。其实从简单来说,哪怕是你最开始练习做作业的 CRUD,其实它也是一种建构模式。只不过在这个架构的世界里有一个叫更适合的词,只有适合你业务的才是更好的架构。不一定非得把你仅仅是一个非常小的几十人访...

2020-09-22 12:09:18

通信协议包定义

一、前言有些小伙伴,可能刚开始接触 Netty 通信,并不一定能理解为什么要做通信协议包的定义。那么你是否接触过 RPC 框架,比如说使用过 Dubbo 做一些分布式的接口,那么这个时候是需要将提供接口的一端,提供一个 jar 包,这个 jar 包就是接口信息的描述性文件。好 !不管你是否接触过或者学习过。为了能让小伙伴们更清晰的了解定义通信协议包,同时也让没怎么接触过 Netty 的伙伴了解...

2020-09-22 12:09:16

客户端架构设计

一、前言在设计客户端的架构之前,我们先思考下我们的目标以及目前已经完成的内容。好!那么你是否还能记得我们最开始设计 UI 组件包的时候,就已经反复提到要将我们的 UI 与业务进行分离,不要将业务流程代码写到 UI 窗口里去。否则你的代码将越来越难以为维护,每新增加一个功能都将会让你从很多的代码中“贴膏药”似的补来补去。UI 方面:我们已经完成了 UI 包的开发,并使用 Maven 进行打包对外...

2020-09-22 12:09:15

数据库表结构设计

一、前言 MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL 是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。阅读到这篇文章的小伙伴,或多或少都是使用过关系型数据库的...

2020-09-22 12:09:13

登录功能实现

一、前言介绍在前面我们已经完成;UI 界面开发、服务端架构设计、客户端架构设计、库表设计。那么接下来从本节开始,陆续实现我们的通信核心功能。在讲解的过程中我会在章节中提供简要明了的系统流程图,以及代码核心功能的实现。这也是我们逐步使用 DDD 四层设计模式与 Netty 结合的实践。二、流程设计首先是用户在窗体中发起登录事件并由客户端向服务端发送登录请求。之后服务端验证后,再将验证结...

2020-09-22 12:09:12

搜索和添加好友

一、前言介绍在上一章节我们实现了用户登录到成功后跳转到主窗体聊天中,而目前跳转后我们还不能发起 聊天,因为目前我们的个人用户还没有自己的好友。那么接下来我们来实现搜索和添加好友功能,因为在微信中是可以从手机端扫描或者通信录进行添加好友。但是我们目前只有 PC 端所以需要在服务端来搜索添加。在实现功能之前,可以先回顾下我们进行库表设计的时候有一张用户表,那么可以在搜索的时候从这里搜索好友信息,搜...

2020-09-22 12:09:10

查看更多

CSDN身份
  • 博客专家
勋章 我的勋章
  • 领英
    领英
    绑定领英第三方账户获取
  • GitHub
    GitHub
    绑定GitHub第三方账户获取
  • 脉脉勋章
    脉脉勋章
    绑定脉脉第三方账户获得
  • 签到达人
    签到达人
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 技术圈认证(专家版)
    技术圈认证(专家版)
    博客专家完成年度认证,即可获得
  • 新人勋章
    新人勋章
    用户发布第一条blink获赞超过3个即可获得
  • 阅读者勋章Lv2
    阅读者勋章Lv2
    授予在CSDN APP累计阅读博文达到7天的你,是你的坚持与努力,使你超越了昨天的自己。
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 1024勋章
    1024勋章
    #1024程序员节#活动勋章,当日发布原创博客即可获得
  • 勤写标兵Lv4
    勤写标兵Lv4
    授予每个自然周发布9篇以上(包括9篇)原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。
  • 原力探索
    原力探索
    参与《原力计划【第二季】——打卡挑战》的文章入选【每日精选】的博主将会获得此勋章。
  • 学习力
    学习力
    《原力计划【第二季】》第一期主题勋章 ,第一期活动已经结束啦,小伙伴们可以去参加第二期打卡挑战活动获取更多勋章哦。
  • 博客之星-前二十名
    博客之星-前二十名
    授予每年博客之星评选结果第11-20名的用户
  • 原力新人
    原力新人
    在《原力计划【第二季】》打卡挑战活动中,成功参与本活动并发布一篇原创文章的博主,即可获得此勋章。
  • 分享王者
    分享王者
    成功上传51个资源即可获取