Giter Site home page Giter Site logo

coding2017's Issues

有一段java代码 需要 大家来分析,很有价值的

``package com.ibmlearn_homwork2;

import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;

import java.io.File;
import java.util.Iterator;

/**
 * Created with IDEA
 * Created by fuyi.ren on 2017/6/11  13:06
 * Description: 写Dom4jUtils工具类,提供外部使用
 */
public class Dom4jUtils
{

     private  static Document document;
    /**
     * @param pathname  /src/com/ibmlearn_homwork2/struts.xml
     * @return  Document 对象
     * @throws Exception
     */
    public  static  Document  readXML(String pathname)throws  Exception{
        //创建SAXReader对象
        SAXReader reader = new SAXReader();
        //读取文件 转换成Document
        Document document = reader.read( new File(pathname) );
        return  document;
    }

    /**
     * 通过节点标签名称,获取某个节点对象
     * @return
     */
    public  Element analyNode(String name){
        // 首先获取根节点
        Element root = document.getRootElement();
        // 遍历所有子节点---然后又遍历子节点
        return  analyNode(root,name);
    }



    /**
     *
     * 需求:每个节点只出现一次,不会出现重复,要求效率高
     * @param node  父节点对象
     * @param name  查找节点标签名称
     * @return 返回该节点对象
     */
    public  Element   analyNode(Element node, String name)
    {
        /**
         *   需要大家 来写了,!!!很有帮助的撒
         */


    }


}

读取大数据量excel文件解决方案

一个约30万行数据的excel文件需要读取并存入数据库,并且需要对每行数据进行有效性校验,大家有什么好解决方案吗?这么多数据如果一次性读入内存,可能会造成内存溢出。

关于分组的思考

第一季已经结束了,我统计了下, 获得代码坚持奖(每次作业都完成的), 第一个月:134人 , 第二个月和第三个月只剩50多个人。 考虑到第一季有700多人, 这样的数字惨不忍睹。
可见能坚持着完成作业的实在太少。 有趣的是,随着人数的减少,每个获得的奖学金增多了, 第三个月每个人有90元。

第一季分组的目的有这么几个:

  1. 减轻我的工作量, 组长帮助督促完成作业, 统计该组的作业完成情况。
  2. 在小组内沟通和交流会更有效率

实际情况不尽如人意,每个小组内完成作业的人太少了, 很多组长非常尽心,在多次群里艾特全体人员,甚至发红包都无法真正的激活小组成员。

我在想学习还得靠自觉 , 外界的刺激是不管用的。

所以分组实际上没什么意义了。第二季该怎么办? 大家有什么好建议?

如何优雅地使用 Github?

Github 是全球最大的开源社区,使用 Github 可谓是程序员的必备技能,Github 最著名的是其基于 Git 的版本托管服务。你可以提交你的项目代码,可以 Fork, Watch 其他优秀的项目。大家有关于使用 Github 的教程和经验可以一起分享,我自己先分享两个自认为还不错的。

正版软件的开源替代

公司是上市公司,要求电脑中的软件使用正版。如office、ps之类的都需要申请,一般申请不到。
java开发中有一些软件自己都是破解的,有没有一些免费的开源替代产品。
eg:

收费产品 开源产品 备注
MyEclipse Eclipse
Office WPS、OpenOffice WPS商业版任然要收费
EA/Visio startUML
MarkdownPad2
Navicat

请补充......

第二季应当要有一个比较完整的实例

相比于第一季的松散结构,第二季最好有一个比较完整的案例,一步步慢慢推进重构,面向对象设计的方法。一个简单的结构例子在书本中已经有很多了,但整体把握的重构,难度会大上很多。这些参与性与学习性也会大幅度提高。

讨论一个在项目中常见的需求(已抽象成一个大家能懂的事情),需要怎么设计或者下面的代码应该怎么重构。

// 一个无性别全自动公共厕所有一个这样的需求:
//1.假设进入 wc 的人,每人有一个带有自己身份的卡片,进入 wc 需要刷卡并提示先生/女士 你好!
//2.进入 wc 时要自动出现"站着" 或者是"坐着" 的 工具(不太准确)。

public class Test2 {

@Test
public void test() {
	// 刷卡
	People people = shuaCard();

	// 进入 wc
	goinWc(people);

	// 3.假如再增加一个需求,走出 wc 时 提示 先生/女士” 下次光临,就要再写一段 if(){}else{}
}

public People shuaCard() {
	People people = new People();
	if (people.getGender()) {
		System.out.println("先生你好");
	} else {
		System.out.println("女士你好");
	}
	return people;
}

public void goinWc(People people) {
	if (people.getGender()) {
		System.out.println("站着的");
	} else {
		System.out.println("坐着的");
	}
}

}

class People {
/**
* true 代表男,false 代表女
*/
boolean gender;

public boolean getGender() {
	return gender;
}

}

在web开发中(基于MVC框架)如何写出符合OOD的代码?

今天跑公司看了下自己写的代码,基本都是面向过程的代码,完全没有体现OOD**,可能是由于公司项目需求少,较少更改,所有我们也没太关心这些,现在我像提高自己的编程**,希望老师能抽空讲一讲在web开发中如何写出符合OOD的代码。

关于编程能力提升群第二季

1. 不再分组
根据第一季的经验, 有问题都在大组提问了, 小组群内的讨论实在太少,一片沉寂,没有存在的价值。

2. 数据结构的作业

我还会持续地发布/讲解数据结构作业
由于人数很多, 作业我没有办法全看一遍, 但是欢迎自荐作业,我会在讲解的时候拿来给大家分享
作业会发布在github上,具体的路径随后发布, 想自荐的需要像我发出pull request
第一季的数据结构作业我也会整理下,一并发出来,对于新加入群的也欢迎做一做
作业全凭自觉,不再评选代码坚持奖。

3. 付费鼓励大家分享

Teach others 是最有效的学习, 所以付费鼓励各位在这个QQ群讲课。
每讲一次暂定为666元。
针对一个主题,或者知识点的讲解, 时间一个小时就好
要求对这个知识点有充分的了解,如果是工作中使用过的最好。
想讲课的话可以给我说下, 我会和你一起准备下,确保质量。

4. 抓狂的提议: 鼓励大家出题
每次我讲完课之后,会就这个主题布置基本作业,也欢迎大家也来布置作业,任何人都可以出题当老师!其它人完成别人布置的作业,然后交流讨论。

为了方便查找,为这些自布置作业单独建立一个 Github 仓库,仓库中没有实质内容,只有一个 readme 用来简单介绍守则。作业发布在 Issues 里面。大家自由出题,都体验一把老师的感觉,不用怕题目出的不好。

每个月搞一个最受欢迎出题人,最活跃答题人评选, 奖金暂定2000元

招聘需求

有点标题dang了,群里有想换工作的和招聘需求的都来逛逛,自己人质量有保证。。。

本帖一年开两次,一次开半年

Issues 使用小贴士

首先 Issues 的功能是用来讨论某个问题的。
它不是贴吧或者灌水的论坛。
所以,不要在讨论中出现任何无助于他人获取解答的内容
反例:

回复:这个问题我不会。
回复:感谢楼主。
回复:楼主好人。
回复:支持!

正例:

提问:本期第三次作业中某段代码的 Bug
正文:在运行至某某循环时(代码如下),结果与期望值不同,请问如何解决此问题?

while(flag){
    someFoo();
}
someBar();

回答:可能是 flag 被其他线程修改,尝试加锁。
下面的代码也许会对你有帮助。

synchronized(key){
    while(flag){
        someFoo();
    }
}
someBar();

要点:提问要详细描述问题,回答要明确说明思路。

然后,不要在这里做实验。
不要用它来随便写无关的内容,如果你想测试 Issues 的用法,请在自己仓库做测试!

进阶

如果你想创建一个漂亮的 Issues,那么你需要学习一下 Markdown。
它是一种标记语言,Github 中的各种地方都使用它来进行文字样式排版。
它很好上手,具体内容请自行学习。
不过这里说一下贴代码的姿势。
请使用三个反引号后跟语言名开头,三个反引号结尾,来包裹代码片段。

```java
public static void main(String[] args){
}
```

将上面的文字直接在 issues 输入,然后点击 编辑框 上面的 Preview 来预览结果。最后点击右下角绿色提交按钮提交。
这样一个漂亮的代码段就完成了。

P.S.. 反引号是啥自行搜索

关于数据库的学习

有很多种数据库,到底该学哪一个?有什么好的学习方法吗?另外如果以后想做DBA该怎么学习充实自己?

transience关键字 具体什么情况下会用到 能不能举个场景例子

查了资料是说

当对象被序列化时(写入字节序列到目标文件)时,transient阻止实例中那些用此关键字声明的变量持久化;当对象被反序列化时(从源文件读取字节序列进行重构),这样的实例变量值不会被持久化和恢复。例如,当反序列化对象——数据流(例如,文件)可能不存在时,原因是你的对象中存在类型为java.io.InputStream的变量,序列化时这些变量引用的输入流无法被打开。

那么这么做的意义是什么呢?望指教!

JavaBean 是如何用的?

POJO,VO,BO,PO,各种O...
我目前的情况:
系统场景:每个数据库表对应一个Bean,举例:项目信息表(prjInfo)->项目实体bean(PrjInfoBean)
我的问题:因为这个PrjInfoBean贯穿dao层,service层,action层,然后到jsp去显示一些属性,所以这个PrjInfoBean很冗余,甚至把其他表的字段或属性(比如用户名,订单金额)的属性也加到自己的bean属性中,比如username,orderSum,等,最后发现,原来对应数据库表的一个实体bean,变得很臃肿庞大,甚至还有一些方法比如对于金额的转换也加在bean的方法中。
我的想法:我觉得应该有更好的实现方式,能够不让一个bean如此臃肿,但是一时也想不出如何来做,是通过拆分?还是怎样?

请大家给出出主意,谢谢!
刘老师给支个招吧

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.