之前被面试官问了这个问题,感觉回答的不太好。
可以从架构设计、组件划分、模块划分、常见问题等方面来回答这个问题。
也可以从适用环境(pc、m、混合开发)、技术栈等角度来回答。
本文参与了SegmentFault 思否面试闯关挑战赛,欢迎正在阅读的你也加入。
之前被面试官问了这个问题,感觉回答的不太好。
可以从架构设计、组件划分、模块划分、常见问题等方面来回答这个问题。
也可以从适用环境(pc、m、混合开发)、技术栈等角度来回答。
本文参与了SegmentFault 思否面试闯关挑战赛,欢迎正在阅读的你也加入。
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
3 回答5.1k 阅读✓ 已解决
3 回答1.8k 阅读✓ 已解决
我们之前的那个产品可以理解为微信,所以遇到样式的问题就看一眼微信就可以了。
环境:PC(windows) 客户端混合开发
技术栈:Vue
细分组件
会话组件(chat.vue)
会话列表组件(chat-session.vue)
单个会话组件(session.vue)
聊天记录组件(chat-window.vue)
聊天记录组件(message.vue)
输入框组件(message-input.vue)
好友组件(friend.vue)
零碎组件
细分模块
通信模块
底层能力模块。调用底层基础能力
当然了,架构模块设计这东西,基本都是在当前场景下,最适合公司的。
需要综合考虑业务需求、性能优化、代码复用和可维护性等多个因素,当然也有可能还有公司的人员、时间成本等等。
常见问题(我后面再补吧。我突然想到我可以直接提问啊)
如何设计数据结构呢?
长列表性能优化
兼容性问题、移植问题、扩展问题、版本控制问题?
消息类型如何扩展、会话类型如何扩展?新旧版本如何兼容?