几句让人退烧的实在话

前几天,看了《第一位图灵奖得主 Alan J. Perlis 的编程警句》一文,有戚戚焉,特摘数句共享之,望有则改之,无则加勉:

计算机让计算机科学感到丢脸。

对计算机来说,自然语言是不自然的。

接触人工智能领域一年足以使人开始相信上帝真的存在。

只要有模块化的地方,就可能会有误会发生:隐藏起一部分信息就意味着需要注意检查沟通的过程。

一个人的常量是另一个人的变量。(甲之常量,乙之变量)

函数会延迟绑定(binding);数据结构会诱导绑定的发生。正确姿势:在编程后期再定义数据结构。

每个程序都是其他程序的一部分,因此很少能完全适用。

如果程序需要处理大量的数据,那么它处理数据的方式一定只局限于少数几种。


如果你的程序有10个参数,那你可能是漏了一些。

从长远来看,每个程序都会变得越来越繁复冗余,最终成为一堆没用的碎片。 递归是计算的源头,因为它用更长的执行时间换来了描述的精简。

连接神经科学和心理学的唯一建设性理论将从软件研究中诞生。

优化会阻碍软件的进化。

简洁并不会先于复杂性发生,而是在复杂性之后。

有时我认为在计算机领域中,唯一一件统一的事情就只有“取指令-执行”周期。

计算的目的是模仿我们的综合能力,而不是理解我们的分析能力。

与双关语一样,编程也是一种文字游戏。


对于不懂编程的外行来说,最好的编程入门书籍是《爱丽丝梦游仙境》。但这只是因为,对于任何一行的外行来说,这本书都是最好的。

一个系统有子系统,子系统又有子系统,子子孙孙无穷尽也,这也解释了为什么我们总是需要从头来过。

很多好主意一旦踏上语义鸿沟,就再也听不到。

在英语中,每个词都可以变成动词。在我们的编程语言中可以这样吗?

在寻求无法企及的事物时,简洁只会碍手碍脚。

在计算中,不变的量是短暂的。 不要搞错了:计算机处理的是数字,而不是符号。我们对一项活动算数化的程度,衡量了我们理解(和控制)的程度。

麦克斯韦方程式不足以设计电动机,这并不是计算机的错。

教孩子编程是违背现代教育原则的。制定计划,严格地组织自己的思路,专注于细节,学习自我批评。做这些事情有什么乐趣可言?

aca822c1f7ee12eb9c2b6a0a095697ad.png

什么叫理解世界?一个人谈理解世界就是指让世界变得人性,在它上面刻上人的印记。

叔本华:活得越久越清晰地看到整个一生无不是失望,甚至是一场骗局

科学本身将会让我知道:一切科学都建立在假设的基础上;那种明智的状态存在于一个隐喻当中;只有在艺术作品中,那种不确定才能得到解答。

爱因斯坦:数学法则只要与现实有关的,都是不确定的;若是确定的,都与现实无关。

0cee5e4dc9532c8c87ebd0c5875c5ada.png

Alan J. Perlis: 编程是一种不自然的行为。 黑马:人机环境系统智能也是不自然的行为。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实现这个需求可以采用以下步骤: 1. 创建一个包含就诊日期、医生姓名、诊断结果和处方信息的数据数组。 2. 创建一个搜索框组件,当用户输入关键字时,使用 JavaScript 的 filter() 方法过滤出包含该关键字的数据。 3. 创建一个表格组件,接收父组件传递的数据数组并展示在表格中。 4. 创建一个详情组件,当用户点击某条记录的详情按钮时,弹出弹窗组件并将该条记录的数据传递给详情组件展示。 5. 创建一个弹窗组件,展示传递给它的数据,并在点击关闭按钮时关闭弹窗。 下面是一个代码示例: ```vue <!-- SearchBox.vue 搜索框组件 --> <template> <div> <input type="text" v-model="keyword" @input="search" placeholder="输入关键字搜索"> </div> </template> <script> export default { data() { return { keyword: '' // 用户输入的关键字 } }, methods: { search() { // 过滤出包含关键字的数据 this.$emit('search', this.keyword) } } } </script> <!-- DataTable.vue 表格组件 --> <template> <table> <thead> <tr> <th>就诊日期</th> <th>医生姓名</th> <th>诊断结果</th> <th>处方信息</th> <th>操作</th> </tr> </thead> <tbody> <tr v-for="record in filteredRecords" :key="record.id"> <td>{{ record.date }}</td> <td>{{ record.doctor }}</td> <td>{{ record.diagnosis }}</td> <td>{{ record.prescription }}</td> <td> <button @click="showDetails(record)">详情</button> </td> </tr> </tbody> </table> </template> <script> export default { props: ['records'], data() { return { filteredRecords: this.records // 初始展示所有记录 } }, methods: { showDetails(record) { // 显示详情弹窗 this.$emit('show-details', record) } }, watch: { records(newVal) { // 数据数组更新时同时更新过滤后的数据 this.filteredRecords = newVal } } } </script> <!-- Details.vue 详情组件 --> <template> <div class="details"> <h2>就诊日期:{{ record.date }}</h2> <p>医生姓名:{{ record.doctor }}</p> <p>诊断结果:{{ record.diagnosis }}</p> <p>处方信息:{{ record.prescription }}</p> <button @click="$emit('close')">关闭</button> </div> </template> <script> export default { props: ['record'] } </script> <!-- Popup.vue 弹窗组件 --> <template> <div class="popup"> <div class="overlay"></div> <div class="content"> <slot></slot> </div> </div> </template> <script> export default { mounted() { // 在组件挂载后,监听 ESC 键按下事件 // 按下 ESC 键时关闭弹窗 window.addEventListener('keydown', this.closeOnEsc) }, beforeDestroy() { // 在组件销毁前,解除 ESC 键按下事件的监听 window.removeEventListener('keydown', this.closeOnEsc) }, methods: { closeOnEsc(event) { if (event.keyCode === 27) { this.$emit('close') } } } } </script> <!-- App.vue 父组件 --> <template> <div> <SearchBox @search="filterRecords"></SearchBox> <DataTable :records="filteredRecords" @show-details="showDetails"></DataTable> <Popup v-if="showPopup" @close="closePopup"> <Details :record="selectedRecord"></Details> </Popup> </div> </template> <script> import SearchBox from './SearchBox.vue' import DataTable from './DataTable.vue' import Popup from './Popup.vue' import Details from './Details.vue' export default { components: { SearchBox, DataTable, Popup, Details }, data() { return { records: [ { id: 1, date: '2021-01-01', doctor: '张医生', diagnosis: '感冒', prescription: '感冒药' }, { id: 2, date: '2021-02-01', doctor: '李医生', diagnosis: '发烧', prescription: '退烧药' }, { id: 3, date: '2021-03-01', doctor: '王医生', diagnosis: '胃炎', prescription: '胃药' } ], filteredRecords: [], // 搜索后的数据 selectedRecord: null, // 当前选中的记录 showPopup: false // 是否显示弹窗 } }, methods: { filterRecords(keyword) { // 根据关键字过滤数据 this.filteredRecords = this.records.filter(record => { return record.doctor.includes(keyword) || record.diagnosis.includes(keyword) || record.prescription.includes(keyword) }) }, showDetails(record) { // 显示详情弹窗 this.selectedRecord = record this.showPopup = true }, closePopup() { // 关闭弹窗 this.showPopup = false } } } </script> ``` 这样就实现了一个简单的就诊记录展示系统,包含搜索、表格、详情、弹窗等多个组件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值