Discover best selling sofas, Lounge chairs and get an extra 10% off using the code SEDONA10

Coding

技术学习、复习、练习指南

前提 技术领域,如果单独拆开去看一项一项地技术和框架的话,内容既多、又庞杂,也很难在真正走上工作岗位之前掌握所有需要的技术。但不同技术和框架,往往有共同点,共享的底层基础、类似的学习方式(比如阅读技术文档),它们也往往属于后端、前端、数据库等领域,因此对这些领域基础掌握的扎实程度,以及良好学习习惯的养成,对于学习并不断学习新技术是有巨大的帮助的。反言之,如果每次学新东西都当成全新的技术来学,一方面效率很低,另一方面也会割裂技术之间的深层联系。所以我反复想强调的就是打好基础,尤其是代码基础,它是你技术入门和消除那层隔阂的必由之路。 学习路线简介 你们这一学期的学习内容,基本涵盖了基础代码、前端、后端等各个领域,以及数据分析、Web Service等细分领域,因此我的想法是划分若干线路,以相对而非绝对的主次安排来进行具体说明。 因为重要性不一并且时间有限,不太可能所有内容都一视同仁。我的建议和侧重点还是在于Java以及数据库部分,这一部分需要大量的练习,其中包括基本算法的练习(类似于斐波那契数列那种)也包括小项目的练习(比如你们课程里的小游戏,同时我还会找一些更正经的小项目来给你练习)。JAVA-OOP-WEBSERVICE这是一条主线,外挂数据库。 第二条线就是html+css+bootstrap,至少要掌握基础的页面布局。 第三条线结合第二条线,掌握网页CRUD的基本操作,JavaScript以及PHP方法的调用,跟数据库打交道等等。 第四条线就是复习一下python以及基础的数据分析方法,毕竟下学期还有数据分析的课。 Java-OOP-WebService线 Java基础 Java基础部分的学习素材部分,Moodle上给的学习资料就够了,你需要的是深入学习和思考,而不是用其它材料来补充,因为它的原理并不复杂,复杂的是通过练习提升熟练度,因此,利用这些材料我认为是足够了:Topic: Basics of Programming | BBCAP23A3 Introduction to IT…

Read More

关于部署Restful Web Services开发环境的一些提示

参照的教程原文地址:RESTful Web Services (hamk.fi) 我把每一步需要注意的事项(如有)概括一下,按照大标题分类。 Install Java11 (JDK11.0.14):直接安装即可,注意选择正确的版本。 Install MySQL – Install MySQL 8 even the procedure is for 5.7标题就是注意事项,图片例子给的5.7,实际要装8.0,步骤类似。…

Read More

GPT生成代码极简指引——以EV3为例

需求简述: 乐高EV3,开发环境是LejOS,需求如下: 1、EV3沿黑线行驶,传感器保持探测黑线边缘以确保路径准确; 2、当前方遇到障碍物时,需要即时躲避并绕过障碍物,继续回到黑线沿黑线行驶。 需求分析: 整体需求为两个部分,可以概括为巡线和避障,如果继续拆分,大致可以分为以下几个部分:1、传感器:颜色传感器和超声波传感器,分别为巡线和避障提供信息;2、马达动作:负责EV3的前进、后退、转向等动作;3、巡线模块和避障模块。 实际项目中,传感器模块、马达控制模块、巡线模块和避障模块应该是分开的,因此,单看巡线和避障两个模块,它们应该与其它模块相配合,具体要看项目的整体规划。 GPT-4/GPTS实操部分: 一、假设只用一个类,那么具体巡线和避障都会变成方法,这个跟通常项目的结构是不符的,但其中的代码经过简单改造也可以使用。 二、不假设有多少类,只提出详细需求和某些技术细节(比如多线程要求使用Thread和Runnable),逐步生成代码。 第一步:编写 Main.java我们将从创建主类开始,这个类会初始化所有需要的组件,并开始执行行驶逻辑。 在这一步中,我们创建了程序的入口点,初始化了监测和控制组件,并启动了一个主循环,根据传感器读数来决定机器人的行为。接下来的步骤将会分别实现这些组件的内部逻辑。 第二步:编写 LineFollower.java这个类的主要职责是使EV3机器人沿着黑线行驶。我们将使用传感器的读数来调整机器人的方向,确保它始终跟随着黑线。 在这个类中,我们依赖于SensorMonitor来获取当前的颜色样本,并根据这个样本来判断机器人是否处于黑线上。如果检测到偏离黑线,我们将调用MotorController的方法来调整机器人的方向。 第三步:编写 ObstacleAvoider.java这个类负责当机器人遇到障碍物时,检测并绕过障碍物,然后重新寻找并回到黑线上继续行驶的逻辑。 ObstacleAvoider类利用SensorMonitor来判断机器人何时需要避障,以及MotorController来执行具体的避障动作,如后退和转向。避障策略可以根据实际情况进行调整。 此外,当机器人绕过障碍物后,它会尝试重新寻找黑线,并调用MotorController的adjustToLine方法(我们将在MotorController类中定义此方法)以确保机器人能够正确地重新对准并沿着黑线继续前进。…

Read More

构造函数调用及方法重写&重载

构造函数部分 在Java当中,构造函数不能继承,但是会调用,C继承于B,B继承于A,那么当你new一个C的时候,假设用的默认构造函数,那么就会分别调用B和A的默认构造函数。 比如A的默认构造函数里有System.out.println(“it’s A”);B的构造函数里有System.out.println(“it’s B”);那么当你new一个C,终端上会同时输出it’A和it’B,如果C的默认构造函数里有输出内容,也会接着输出。例如以下代码: 当我在main函数中实例化一个martti类的时候,它会同时调用Mammal和Animal的构造函数,于是终端上会输出:Animal() constructorit’s human constructor!it’s martti constructor 方法重写与重载 抽象类A里面有个方法,代码如下:protected void eat(){System.out.println(“Eating like an animal!”);} 那么如果非抽象类B继承于A,B就必须实现(implement)A类里面的eat方法,实现的方法有且只有一种,那就是override. override是指,方法名相同,参数相同(没有参数那就是都没有):public…

Read More