📣 Back to School开学季 - VIP通行证5折优惠!蓝莓、Offer多多同步优惠
楼主: gritwins
跳转到指定楼层
上一主题 下一主题
收起左侧

CS61B - 等待学校结果靠刷课转移注意力

 
🔗
Pro MacBook 2018-3-18 11:52:08 | 只看该作者
全局:
Hi, 请问github上的作业 是可以下载下来做 lab的嘛  cs61b
回复

使用道具 举报

🔗
 楼主| gritwins 2018-3-18 16:15:43 | 只看该作者
全局:
没问题啊,下载skeleton-sp18的,里面有文件夹
回复

使用道具 举报

🔗
guiqiu 2018-3-18 21:37:38 | 只看该作者
全局:
请问一下,国内怎么上YouTube?看不了这个视频,请问能推荐一下vpn吗?
回复

使用道具 举报

🔗
 楼主| gritwins 2018-3-19 10:41:45 | 只看该作者
全局:
guiqiu 发表于 2018-3-18 21:37
请问一下,国内怎么上YouTube?看不了这个视频,请问能推荐一下vpn吗?

自己在aws上搞
回复

使用道具 举报

🔗
 楼主| gritwins 2018-3-22 20:32:09 | 只看该作者
全局:
Week 5 ~ 6a:

进度推进地比较慢,继续坚持,完成了Week6的lecture部分,大部分精力花在作业上,不得不赞一下这门课程的设计者的用心,推荐大家一定要认真完成Homework,lab和project(Project 2现在还没有着手开始弄,努力!)

Lecture:

1. Package 概念,将不同代码分配在不同的包里,也是在消除代码复杂度,方便更好地管理,大型项目中这是特别好的策略。不由地想起了Python项目中的cookie cutter,利用脚手架自动生成代码。
2. Access control, 主要介绍了private, protected, (package private), public 修饰符的用法,之前没有接触过的是省略不写就是package private,作用依然是封装,对外暴露合适的接口而隐藏实现细节。留意:虽然package private在子类中不可见,但是如果在同一个package的子类依然可见。
3. Objects中的特定方法,这个我是完全类比Python的Magic Methods,比如toString对应__str__/__unicode__, hashCode对应__hash__
4. ADT和API设计的一些原则,这也是我特别感兴趣的一部分,都说优雅的API设计,什么才算优雅?多少算优雅?我觉得还是要靠经验积累,多看别人的源代码才会慢慢有感觉,前几天看了Kennith的records源代码,挺赞叹OOP的设计方式的。其中提到了Uncle Bod 的 SOLID的设计原则:
    1. Single responsibility principle: 我理解不要让一个类承担太多的职责,比如一个Caculator类,不要让它去format最后的计算结果而是另用一个Formatter类;Python的logging模块完美地诠释了这一点,有formatter,handler,emitter,各司其职;
    2. Open-closed principle: 可扩展性,不破坏已有类的情况响应变化,听说linus写git时,基本数据结构在后面迭代时没有被修改过,这就是一个特别好的例子;
    3. Liskov substitution principle: 在继承的时候需要多考虑一层,比如square和rectangle的例子,如果square继承rectangle,那么square中就会有rectangle里的setWidth和setHeight的方法,显然这些方法在square中是有问题的;这就违反了liskov原则
    4. Interface segregation principle: 不应该强迫去实现一些实际上我们不会用到的接口,而更多用Plugin的方式插入;
    5. Dependency Inversion principle:实体不应该依赖具体实现层,应该用接口替代。比如:不应该直接给MySQL的数据库连接,而是一个抽象意义的数据库连接接口,提倡面向接口而不是面向实现
5. 区分Delegation 和 extension, 什么时候使用继承(extension),什么时候使用组合(Delegation)

Practice:

1. Project2 的基本地图绘制任务,如何把一个问题拆解成若干问题,并且组织在代码里面实现出来,it needs practice;
2. HW1 的GuitarHero:温习Interface,AbstractClass等基本概念,话说那个midi旋律特别酷炫
3. 作业中有一个任务:设计一个停车场,我学到了先不着急进入实现细节,而是充分设计好接口,然后再敲键盘,强烈推荐大家把它实现,涉及到PriorityQueue,Map等数据接口的使用

终于要全力搞Project2了!
回复

使用道具 举报

🔗
mk48 2018-3-23 01:08:04 | 只看该作者
全局:
挺好的  感謝資訊

评分

参与人数 1大米 +3 收起 理由
hhh146578 + 3 很有用的信息!

查看全部评分

回复

使用道具 举报

全局:
忍不住叹气。。。Project2 Phase1的Generating World也太难了。。。哎
回复

使用道具 举报

🔗
simple_xp 2018-3-25 00:14:46 | 只看该作者
全局:
感谢分享资源~~~~~~
回复

使用道具 举报

🔗
 楼主| gritwins 2018-3-25 18:05:04 | 只看该作者
全局:
嘻嘻嘻嘻嘻嘻嘻 发表于 2018-3-24 12:45
忍不住叹气。。。Project2 Phase1的Generating World也太难了。。。哎

真的吗?
回复

使用道具 举报

全局:

可能是我基础太差了。。不过像josh给出的demo那样的generating world我不太会实现,其实2D roguelike tile-based world这个话题也有很广泛的讨论了但我就是实现不了哎。我参考了http://journal.stuffwithstuff.com/2014/12/21/rooms-and-mazes/这篇文章和一些Stack Overflow上随便看的讨论,写了一点,现在有点卡壳,再去继续憋代码了,楼主加油!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

>
快速回复 返回顶部 返回列表