第10章 第一个给你看(2/2)
就在他几乎要放弃,准备从头再敲一遍时,一只手从旁边伸过来,食指关节在屏幕某处轻轻叩了叩。
“这里,多了一个下划线。”
叶明一愣,顺著那手指看去,use_rname。
那个该死的、隱形的下划线,正静静躺在那里。
他猛地回头。
一个戴黑框眼镜的老师站在他身侧,微微倾身看著屏幕。
他穿著灰蓝色的衬衫,袖口挽到小臂,身上有种常年待在实验室里的人特有的乾净与沉静。
不是严肃,而是一种见惯了各种错误的平静。
叶明连忙改正,运行。
那个困扰他许久的错误提示,消失了。
“谢谢老师!”他赶紧站起身。
老师摆了摆手,示意他坐下,自己也从旁边拉了把椅子过来。
“找了很久?”
“嗯……快一个小时了。”叶明有些窘迫。
为一个下划线,真是出息。
“正常。”
老师语气平淡,听不出是安慰还是陈述。
“刚开始学,眼里只有自己想写的逻辑,看不见实际写出来的字符。
眼到,手不到,心也没到。
所谓的『结硬寨,打呆仗』,在编程里,就是和每一个字母、每一个符號死磕。
磕贏了,路就通了。”
叶明心头一震,“眼到,手不到,心也没到”这十个字,精准地戳中了他刚才那种焦躁又盲目的状態。
“叫什么名字?”老师推了推眼镜,问道。
“我叫叶明。是人文学院的,大一。”
老师点了点头,目光落回屏幕上他那段虽然跑通但依然稚嫩的代码。
“文科生,肯沉下心钻这个,是好事。逻辑和耐心,这两样你看起来不缺。”
他话锋一转,语气依旧平和,却多了些分量。
“不过,编程不光是让机器听话,更是让自己和別人看得懂。你这个变量名,即便拼对了username,也不是个好名字。”
叶明怔住。名字不对?
“username太模糊。”
老师用笔在他笔记本空处隨手写下几个词。
“是登录的用户名?显示的名称?还是全名?
在资料库里,它可能叫login_name;在个人资料页,它该叫display_name;在表单里,它可能只是input_name。
一个模糊的名字,会在你代码变多时,变成一百个互相打架的模糊概念。
命名的艺术,就是消除歧义的艺术。这是比语法更早的『正確』。”
叶明看著那几个词,仿佛又有一层薄雾被拨开。
他之前只关心“能不能跑”,老师却已经在说“怎么才跑得明白、跑得长远”。
“我姓张,张秉文,计协的指导老师。”
老师放下笔,像是隨口一提。
“以后有问题,可以来问我。每周六上午我一般都在系里。”
叶明压下心中的惊喜,连忙道谢。
他想起李悦学姐的提醒,犹豫著问:“张老师,关於网站前后端怎么更……更清晰地配合,我有点乱。”
张秉文似乎就等他问这个,没有直接回答,而是问:“你想像中那个网站,最后想做成什么样?”
叶明深吸一口气,把“重生模擬器”的粗略想法说了出来,包括简单的隨机事件、属性分配和不同人生路径。
张秉文安静听完,点了点头。
“想法有点意思。那你就不能只想著『登录』、『显示』这几个散点了。你得先有个地图。”
他又拿起笔,在刚才的纸面上画了三个方框,用箭头连接。
“前端,负责展示和交互,就是瀏览器里玩家看到、点到的东西。
后端,负责处理和判断,就是你设的那些规则、概率计算。
资料库,负责记住一切,玩家的选择、结果、状態。”
他点了点连接前后端的箭头。
“这里,要定义清晰的语言。前端发『请求』,要什么数据,做什么操作。
后端回『响应』,给你结果,或者告诉你成功失败。
別把前后端的逻辑搅在一起,那是乱燉,以后没法加新菜。”
寥寥数语,一张极简的蓝图。
叶明之前脑子里纠缠的“html怎么接php”、“数据怎么来回传”的毛线团,被这几个方框和箭头理出了清晰的线头。
“当然,这是最理想的地图。”张秉文笑了笑,“实际走起来,会踩坑,会绕路。但心里有这张图,迷路了也知道自己在哪。这比学一百个函数调用更重要。”
他站起身,看了看表。
“今天先到这儿。记住两件事:一是名字要取得清楚,二是脑子要分得清楚。回去可以把你那个模擬器的流程,用这种分块的思路画一画,不用写代码,先画明白。”