2021必修 的CSS架构系统(视频源码齐)网盘学习
2021必修的 CSS架构系统
第2章学习的内容是:vue3创建与初始配置、vue3创建与初始配置 、node版本选择小技巧、(视频资源vx(cmL46679910))CSS设计模式完结(1) 、 CSS设计模式完结(2)
@Data
public static class CustomException extends RuntimeException {
private String key;
private String message;
public CustomException(String key, String message) {
super(String.format("(%s)-[%s]", key , message));
this.key = key;
this.message = message;
}
@Override
public Throwable fillInStackTrace() {
return this;
}
@Override
public String toString() {
return String.format("(%s)-[%s]", key , message);
}
}
private static void fun(String name) {
if (!"qinyi".equals(name)) {
throw new CustomException("OptimizeException.fun.35", "name is not qinyi...");
}
}
public static void main(String[] args) {
fun("imooc-qinyi");
}
}
、CSS设计模式完结(3)、 按 OOCSS 原则重写如下样式、 CSS架构方案 、CSS架构之Settings层代码实现、 CSS架构之Tools层代码实现(上)、(视频资源vx(cmL46679910))CSS架构之Tools层代码实现(下)、 CSS架构之Base层代码实现(1)、CSS架构之Base层代码实现(2)、
public class DebugVariable {
@Data
@NoArgsConstructor
@AllArgsConstructor
private static class Imoocer {
private String name;
private int age;
private double salary;
}
private static boolean isRobotImoocer(Imoocer imoocer) {
return imoocer.getName().endsWith("robot");
}
private static Map<String, String> objToMap(Imoocer imoocer) {
System.out.println("coming in objToMap......");
Map<String, String> result = new HashMap<>();
boolean isRobot = isRobotImoocer(imoocer);
if (isRobot) {
throw new RuntimeException("imoocer is robot");
}
if (StrUtil.isEmpty(imoocer.getName())) {
imoocer.setName("imooc-qinyi");
}
result.put("name", imoocer.getName());
result.put("age", String.valueOf(imoocer.getAge()));
result.put("salary", String.valueOf(imoocer.getSalary()));
return result;
}
public static void main(String[] args) {
Imoocer imoocer = new Imoocer("qinyi", 19, 0.0);
System.out.println(objToMap(imoocer));
}
}
CSS架构之Components层代码实现(上)、CSS架构之Components层代码实现(中)、CSS架构之Components层代码实现(下)、CSS架构之Acss层代码实现(上)、 CSS架构之Acss层代码实现(下)、CSS架构之Theme层代码实现(上)、 CSS架构之Theme层代码实现(中)、CSS架构之Theme层代码实现(下)。
第3章学习的内容是:搭建本地 MockJs(上) 、 搭建本地 MockJs(下) 、响应式布局(上)、响应式布局(下)、(视频资源vx(cmL46679910))首页设计稿构思 、 架构之Elements层扩展、
public class LogbackHolder {
/**
* <h2>根据名称获取 logger 实例</h2>
* */
public static Logger getLogger(String name) {
LoggerContext loggerContext = (LoggerContext) LoggerFactory.getILoggerFactory();
// 如果没有创建 logger
if (loggerContext.exists(name) == null) {
// 自己动态构造 logger 对象
return buildLogger(name);
}
return loggerContext.getLogger(name);
}
/**
* <h2>动态构造 logger 实例</h2>
* */
private static Logger buildLogger(String name) {
LoggerContext loggerContext = (LoggerContext) LoggerFactory.getILoggerFactory();
Logger logger = loggerContext.getLogger(name);
// 配置 rollingFileAppender
RollingFileAppender rollingFileAppender = new RollingFileAppender();
rollingFileAppender.setName(name);
rollingFileAppender.setContext(loggerContext);
// 配置 rollingPolicy
TimeBasedRollingPolicy rollingPolicy = new TimeBasedRollingPolicy();
rollingPolicy.setFileNamePattern("/tmp/log/" + name + ".%d{yyyyMM}.log");
rollingPolicy.setParent(rollingFileAppender);
rollingPolicy.setContext(loggerContext);
rollingPolicy.start();
// 配置 encoder
PatternLayoutEncoder encoder = new PatternLayoutEncoder();
encoder.setCharset(StandardCharsets.UTF_8);
encoder.setPattern("%msg%n");
encoder.setContext(loggerContext);
encoder.start();
rollingFileAppender.setRollingPolicy(rollingPolicy);
rollingFileAppender.setEncoder(encoder);
rollingFileAppender.start();
// 配置 logger
logger.addAppender(rollingFileAppender);
logger.setAdditive(false);
logger.setLevel(Level.INFO);
return logger;
}
public static void main(String[] args) {
getLogger("qinyi").info("imooc qinyi use logback...");
}
}
架构之ACSS层扩展(上)、 架构之ACSS层扩展(下) 、 架构之Components层扩展(上)、 架构之Components层扩展(下) 、多色图标 SvgIcon 、launch 组件中星星图标用 SvgIcon 实现、纯 CSS 实现轮播图 、 完成首页布局(上)、 完成首页布局(下)。
第4章学习的内容是:商城页设计稿构思、 架构之 Components 层扩展 、完成商城页布局 。
/**
* <h2>捕获有必要的代码段, 不要大段的使用</h2>
* */
public static long suitableTryCatch(String start, String end) {
LocalDate startDay;
LocalDate endDay;
try {
startDay = LocalDate.from(DateTimeFormatter.ofPattern("yyyy-MM-dd")
.parse(start));(视频资源vx(cmL46679910))
endDay = LocalDate.from(DateTimeFormatter.ofPattern("yyyy-MM-dd")
.parse(end));
} catch (DateTimeException ex) {
ex.printStackTrace();
return -1;
}
return startDay.until(endDay, ChronoUnit.DAYS);
}
/**
* <h2>尽量不要捕获 Exception, 而是捕获更加具体的异常</h2>
* */
public static void classifyException(String fileName) {
try {
FileInputStream file = new FileInputStream(fileName);
int x = (byte) file.read();
} catch (IOException ex) {
ex.printStackTrace();
}
}
/**
* <h2>异常处理后要及时的清理, 释放资源</h2>
* */(视频资源vx(cmL46679910))
public static void closeResource(String fileName) {
FileInputStream file = null;
try {
file = new FileInputStream(fileName);
int x = (byte) file.read();
} catch (IOException ex) {
ex.printStackTrace();
} finally {
try {
if (null != file) {
file.close();
}
} catch (IOException ex) {
ex.printStackTrace();
}
}
}
第5章学习的内容是: 限时快抢页设计稿构思 、 中文字体压缩:字蛛(font-spider)、 border-radius原理及实现复杂图形 、 完成限时快抢页布局(上) 、完成限时快抢页布局(中)、完成限时快抢页布局(下)。
第6章学习的内容是:直播列表页设计稿构思、 ACSS层扩展滤镜特效 、完成直播列表页布局(上)、完成直播列表页布局(下)。
/**
* <h2>捕获有必要的代码段, 不要大段的使用</h2>
* */
public static long suitableTryCatch(String start, String end) {
LocalDate startDay;
LocalDate endDay;
try {
startDay = LocalDate.from(DateTimeFormatter.ofPattern("yyyy-MM-dd")
.parse(start));
endDay = LocalDate.from(DateTimeFormatter.ofPattern("yyyy-MM-dd")
.parse(end));
} catch (DateTimeException ex) {
ex.printStackTrace();
return -1;
}
return startDay.until(endDay, ChronoUnit.DAYS);
}
/**
* <h2>尽量不要捕获 Exception, 而是捕获更加具体的异常</h2>
* */
public static void classifyException(String fileName) {
try {
FileInputStream file = new FileInputStream(fileName);
int x = (byte) file.read();
} catch (IOException ex) {
ex.printStackTrace();
}
}
/**
* <h2>异常处理后要及时的清理, 释放资源</h2>
* */
public static void closeResource(String fileName) {
FileInputStream file = null;
try {
file = new FileInputStream(fileName);
int x = (byte) file.read();
} catch (IOException ex) {
ex.printStackTrace();
} finally {
try {
if (null != file) {
file.close();
}
} catch (IOException ex) {
ex.printStackTrace();
}
}
}
/**
* <h2>尽早的让异常暴露出来</h2>
* */
public static void earlyException(String input) {
//(视频资源vx(cmL46679910))
// 详细的判断
if (null != input && !"".equals(input) && input.contains("qinyi")) {
// ....
} else {
throw new IllegalArgumentException("error input: " + input);
}
// do something
}
}
第7章学习的内容是: 直播详情页设计稿构思、 方案的选择 、完整直播详情页。