Chapter 14 Stone
Chapter 14 Stone
The afternoon sun slanted into the Light project team's office area, and the air was filled with the faint smell of new building materials, along with the sounds of coffee, instant noodles, and keyboard typing. This was a uniquely anxious yet vibrant atmosphere characteristic of internet companies.
According to the work arrangements Chen Mo mentioned at noon, Lin Shen didn't immediately dive into the code called ConversationListAdapter. He leaned back in his slightly cheap ergonomic chair, his hands folded behind his head, his gaze like an unfocused lens, slowly sweeping across the office: Wang Hao struggling with waveform graphs in the corner, product manager Li Ting with her brows furrowed, and Lu Chuan grinning at the "first draft of user feedback" at the next workstation.
The message list is lagging.
Chen Mo threw out a standard test for a newcomer, but he planned to add some weight to this test!
He closed his eyes, letting fragments of memories from his past life and the code perception of this life slowly rise and fall. In 2010, Android had not yet been released, and Froyo was still on its way to widespread adoption. The hardware was mainly single-core, memory was measured in MB, and GC (garbage collection) was like a grumpy cleaner, causing the entire interface to "clunk" from time to time.
In this environment, talking about "smoothness" is itself a luxurious ambition.
But WeChat... or rather, the future WeChat, is growing out of this extravagant ambition.
He opened his eyes, his fingers swiping across the touchpad to bring up the embedded performance monitoring logs. The data was raw, but enough to paint a picture of a gasping for breath: over three hundred historical messages, initial load time exceeding two seconds, and as he swiped, the frame rate curve resembled an electrocardiogram of a heart attack, frequently plummeting to unsettling lows.
He then opened the user feedback backend and searched for keywords such as "lag," "slow," and "pause." There weren't many complaints, but they were as precise as needles, piercing the most vulnerable part of the "experience."
"Brother Moth," Lin Shen suddenly spoke, his eyes never leaving the screen.
"Huh? You called me?" Lu Chuan looked up abruptly, a little flattered but also a little wary.
"If you were a user, and you opened the app and the message list was lagging, what would your first reaction be?"
"Uh... this crappy phone?" Lu Chuan said uncertainly.
"Your second reaction?"
"This crappy software?"
"The third one?"
"Why wouldn't I use QQ on my phone?" Lu Chuan said, then paused for a moment.
Lin Shen nodded and remained silent. He created a new blank document with a concise title: "Analysis of Message List Loading Experience Optimization Path." Then, he typed the first line, not in technical terms, but a question:
When we talk about "lag", what are we talking about?
For the next hour, Lin Shen's keyboard clicked in a steady, rapid rhythm. He didn't immediately dissect the code, but rather, like a detective drawing a crime scene diagram, he first sketched out the overall picture of the "crime scene." User operation paths, data flow, UI rendering timing, potential bottlenecks... an invisible map became clear in his mind.
Lu Chuan glanced at Lin Shen several times, only to see the text scrolling rapidly across the screen and the occasional simple outlines. He couldn't understand the specific content, but the focused aura, as if he were conversing with some invisible system, made his slight resentment resurface, which was then suppressed by greater curiosity.
Finally, Lin Shen stopped typing. He flexed his fingers and his gaze fell on the three headings side by side in the middle of the document.
He needed to explain his thinking to Chen Mo and the potential judges. But a dry technical description wasn't enough, especially under the countdown pressure of that horse racing mechanism; decision-making required a more intuitive "perception."
He thought for a moment and added a "description" to each of the three headings.
Path A: Quickly stop bleeding and clear the bottleneck.
The core metaphor: A crowded convenience store needs an additional cashier assistant.
Scenario Description: Imagine the only convenience store in an old neighborhood. During the evening rush hour, customers (message data) form long queues, and only one shopkeeper (main thread) is overwhelmed—searching for goods (querying the database) and calculating bills and packaging (building the view). The queue grows longer and longer, and new customers (load triggered by swiping) complain bitterly.
Our procedure: We hire a quick and efficient assistant (background thread). The assistant is responsible for retrieving items (data) from the warehouse (database) according to the list, categorizing and placing them in advance. The boss is only responsible for the final checkout and delivery (UI rendering), which immediately speeds up the team's movement.
Technical solution: Remove IO/CPU intensive operations such as database queries and image decoding from the main thread and process them using asynchronous tasks or thread pools.
Advantages: Modifications are relatively controllable and can quickly alleviate the most severe lag.
Risks: The "assistant" and "boss" must work together without errors (thread safety), and there is more personal management involved (increased concurrency complexity).
After writing this paragraph, Lin Shen paused slightly. The plan was sound, but its potential was limited. No matter how much the convenience store was optimized, its throughput had a limit. He continued writing.
Path B: Experience Innovation, Reshaping Processes
The core metaphor: Transformation into a modern supermarket, with pre-processing and fast-track access.
Scene Description: The small shop is demolished, and a bright supermarket is built on its site. The entrance features attractive daily recommendations and a fast-moving consumer goods section (first screen message, prioritized high-definition rendering). Further inside, the products on the shelves are displayed in appealing large packaging (non-visible area message, using a skeleton screen or low-resolution preview). Customers take their items, walk to the self-checkout (after scrolling to the desired location, asynchronous fine-grained rendering), swipe, and leave—a remarkably smooth experience.
Our surgery: a redesign of the "shopping process." This includes tiered loading (first-screen priority), differentiated rendering (skeleton screen + lazy loading), and smarter cache prefetching. The goal is to ensure users experience no waiting time from entering the "supermarket" to completing their "shopping."
Technical responses: Refactor the list adapter logic, introduce view reuse optimization, a more refined caching strategy, and may involve rewriting some UI components.
Advantages: The user experience will see a qualitative leap, and smoothness will become a highlight of the product.
Risk: The renovation project is large-scale and may introduce new UI bugs, requiring close collaboration between product and design teams.
This was the goal he envisioned for version 0.7: not just to fix lag, but to build a competitive advantage in user experience. He took a deep breath and wrote down his most ambitious, and perhaps the most "crazy," proposal.
Path C: Architectural Restructuring, For the Future
Core metaphor: Building fully automated intelligent warehousing centers to disrupt the retail model.
Scenario Description: This is no longer a store, but a highly intelligent central warehousing system. Whatever the user wants (view messages), the system retrieves it directly from the warehouse (redesigned data layer) using optimized algorithms, and instantly packages and delivers it to the user via a high-speed sorting line (declarative UI framework, data-driven view). The entire process is black-box and extremely efficient.
Our approach: fundamentally rethinking the relationship between data models and UIs. Exploring responsive or declarative UI frameworks to achieve complete decoupling and efficient synchronization of data and view.
Technical response: This may involve partially rewriting the UI interaction layer of the underlying communication module and introducing a new programming paradigm.
Advantages: Theoretically optimal performance and maintainability, paving the way for future complex functions.
Risk: High technological uncertainty and long R&D cycle make it completely unsuitable for current firefighting and short-term goals.
After writing the three "metaphors," Lin Shen attached rigorous technical analysis, code evidence, and a detailed benefit/cost/risk assessment table. He finally gave the following recommendations: immediately implement partial security modifications to A; fully plan for B as a breakthrough in the core experience of 0.7; and archive C as a technical reserve.
The document is well-formed, with a clear structure, and even has a lively feel that makes it seem "unlike a technical document".
He didn't send it immediately. Instead, he quickly wrote a proof-of-concept code patch, focusing on the simplest part of path A. Running it and testing it, the list scrolling was indeed a little smoother. The effect met expectations and verified the feasibility of his approach.
"You... you've finished modifying this?" Lu Chuan had somehow gotten closer again, staring intently at the now smoother simulator screen.
"Just for verification." Lin Shen saved the document, dragged it into the email, and before sending it, he also included the analogy about "small shops, supermarkets, and smart warehouses".
Click send.
A few seconds later, Chen Mo's reply popped up: "Received. Come to the small conference room."
In the small conference room, only he and Chen Mo were present. Chen Mo stared silently at the document on the screen for a long time. His gaze lingered particularly long on the three metaphors.
"Three hours. Analyzing the document, plus verifying the code." Chen Mo's tone was neither praising nor criticizing. "Very efficient."
Lin Shen didn't respond, waiting for what would follow.
"The analogy is very vivid." Chen Mo finally looked up, his face expressionless. "But we can't rely solely on analogies when making technical decisions."
"The metaphor is for building consensus," Lin Shen replied. "Technical details can be discussed, but we need a common, vivid picture of 'what problem we want to solve' and 'what state we want to achieve.' A small shop, a supermarket, and a warehouse are different pictures, corresponding to different resource investments and expectations."
Chen Mo remained noncommittal, tapping his finger on the table: "If you were me, what would you choose now?"
"Immediately get to work on making the 'convenience store' run more smoothly, and at the same time start designing the 'supermarket' blueprints, aiming to have test users browse it in version 0.7. The 'warehouse' concept can be put on hold for now." Lin Shen paused, "Moreover, I believe the core of version 0.7 shouldn't just be adding new features, but rather making the basic 'shopping experience' even more comfortable than in Guangzhou."
A glint of light flashed in Chen Mo's eyes, and he suddenly changed the subject: "The product team is pushing for a 'message read' feature, and users are also asking for it. What do you think?"
Message read?
Lin Shen suddenly thought of his childhood friend who went to study in South Korea. He had seen this feature on KakaoTalk, but WeChat... also had a similar exploration?
However, I've hardly seen it since, which means this road is bad.
Lin Shen's heart skipped a beat. After pondering for a few minutes, he shook his head almost without hesitation: "I think that in version 0.7, the priority of the message read status function should be lower than the list smoothness optimization."
"reason?"
"Three reasons." Lin Shen sat up straighter, his speech steady but clear. "First, the technical cost is considerable, requiring reliable end-to-end synchronization, which may disrupt our pace of optimizing core communication links."
"Second," he emphasized slightly, "social pressure. 'Read' is an explicit digital pressure on the recipient, depriving them of the buffer of 'read but not replied.' For the sender, it may breed anxiety like 'Why didn't he reply even though he read it?' While this feature increases the transparency of information, it is likely to damage the subtle, human comfort in communication."
Chen Mo's brow twitched almost imperceptibly.
"Third," Lin Shen continued, "a mismatch in stages. We are now in the stage of building the foundation and constructing the core wall (communication experience), while 'read' is like 'putting on wallpaper and hanging decorative paintings' (social enhancement) at the decoration level. No matter how dazzling the wallpaper and decorative paintings are, they may be dazzling or even collapse. In version 0.7, we should focus on making information 'faster, more stable, and easier' to be delivered, rather than adding extra status shackles to the delivery."
After he finished speaking, the small conference room fell silent, with only the soft hum of the air conditioner.
Chen Mo remained silent for a long time, only looking at Lin Shen. His gaze seemed to penetrate Lin Shen's calm exterior, weighing the weight of his words and whether those seemingly "unconventional" metaphors and viewpoints were truly supported by solid product logic and technical judgment.
"I heard your opinion." In the end, Chen Mo didn't express his opinion, but simply closed his notebook. "Start the list optimization according to your plan. Have Lu Chuan familiarize himself with the security aspects of path A. I need to see a detailed version of the design for path B in three days. As for the message read..."
He stood up: "Tomorrow morning, at the version planning meeting, Li Ting will be making a proposal. I can give you special permission to participate; you can prepare your points."
After Chen Mo left, Lin Shen stayed in the conference room for a few more minutes. When he came out again, he let out a soft breath.
The first stone has been thrown; how the ripples will spread remains to be seen until tomorrow.
When Lin Shen returned to his workstation, he found that Lu Chuan was already waiting for him. Obviously, Li Ting had already made arrangements for him.
Lu Chuan's expression was complicated. He never expected that he would help Lin Shen on the very first day.
"Teacher Chen asked us to work on the 'convenience store cashier assistant' job first," Lin Shen pulled over a whiteboard marker and drew two crooked boxes and a line on his personal whiteboard. "Come on, let's figure out how to make the 'assistant' and the 'boss' work together well and not deliver the wrong goods."
Looking at the childish sketch and then at Lin Shen's calm face, Lu Chuan suddenly realized that this "specially approved" guy might have something in his head that was even more... different than he had imagined.
novelraw